Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- unsigned long long INF=999999999999999999;
- unsigned long long v[20001];
- unsigned long long a[1001],b[1001];
- int main()
- {
- unsigned long long h,n,i,j,cnt,min1;
- cin>>h>>n;
- for(i=1;i<=n;i++){
- cin>>a[i]>>b[i];
- }
- for(j=0;j<=2*h;j++){
- v[j]=INF;
- }
- v[0]=0;
- for(i=1;i<=n;i++){
- for(j=0;j<=h;j++){
- cnt=0;
- if(v[j]!=INF){
- while(j+cnt*a[i]<h){
- v[j+cnt*a[i]]=min(v[j+cnt*a[i]],v[j]+cnt*b[i]);
- cnt++;
- }
- v[j+cnt*a[i]]=min(v[j+cnt*a[i]],v[j]+cnt*b[i]);
- }
- }
- }
- min1=INF;
- for(i=h;i<=2*h;i++){
- min1=min(min1,v[i]);
- }
- cout<<min1;
- return 0;
- }
Advertisement
Advertisement