Pagini recente » Cod sursa (job #1994256) | Cod sursa (job #735370) | Cod sursa (job #2811593) | Cod sursa (job #2266792) | Cod sursa (job #751887)
Cod sursa(job #751887)
#include <cstdio>
struct gen{
int e, c;
};
int min (int a,int b){
if(a<b)return a;
return b;
}
gen a[1005];
int w, n,ok[5005],sp[5005];
int main () {
int i,s=0,j;
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
scanf("%d %d",&n,&w);
for(i=1;i<=n;++i){
scanf("%d %d",&a[i].e,&a[i].c);
s+=a[i].e;
}
if(s<w){
printf("-1");
return 0;
}
ok[0]=1;
for(i=1;i<=n;++i){ //generatoarele
for(j=w;j>=0;--j)if(ok[j]&&j+a[i].e<=w){ //energia cumualata
ok[j+a[i].e]=1;
if(sp[j+a[i].e]!=0)sp[j+a[i].e]=min(sp[a[i].e+j],sp[j]+sp[a[i].e]);
else sp[j+a[i].e]=sp[j]+a[i].c;
}
}
printf("%d",sp[w]);
return 0;
}