Pagini recente » Cod sursa (job #1922770) | Cod sursa (job #1448659) | Cod sursa (job #2448284) | Cod sursa (job #10872) | Cod sursa (job #1320933)
#include <stdio.h>
#include <algorithm>
#define NMAX 10001
#define inf 1<<30
using namespace std;
int E[NMAX],C[NMAX];
int sol[NMAX];
int main(){
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
int n,w,s=0;
scanf("%d",&n);
scanf("%d",&w);
for(int i=1;i<=n;++i){
scanf("%d %d",&E[i],&C[i]);
s+=E[i];
}
if(s<w) printf("-1\n");
else{
for(int i=1;i<=w;++i)
sol[i]=inf;
for(int i=1;i<=n;++i)
for(int j=w;j>=0;--j)
if(E[i]<=j){
if(sol[j]>C[i]+sol[j-E[i]])
sol[j]=C[i]+sol[j-E[i]];
}
else
sol[j]=min(sol[j],C[i]);
printf("%d\n",sol[w]);
}
return 0;
}