Pagini recente » Cod sursa (job #2304438) | Cod sursa (job #2163727) | Cod sursa (job #3261857) | Cod sursa (job #1368712) | Cod sursa (job #1866863)
#include<stdio.h>
struct bine { int energ ; int cost ;};
bine v[1001];
int d[5000001];
int maxim( int a , int b ){
if(a>b)
return a;
return b;
}
int main(){
int n,e,emax,cmax,i,j;
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
scanf("%d%d",&n,&e);
emax=cmax=0;
for(i=1;i<=n;i++){
scanf("%d%d",&v[i].energ,&v[i].cost);
emax=emax+v[i].energ;
cmax=cmax+v[i].cost;
}
if(emax<e)
printf("-1\n");
else{
for(i=1;i<=n;i++){
for(j=cmax;j>=v[i].cost;j--){
d[j]=maxim(d[j],d[j-v[i].cost]+v[i].energ);
if(d[j]>=e)
cmax=j;
}
}
printf("%d\n",cmax);
}
return 0;
}