Pagini recente » Cod sursa (job #2246416) | Cod sursa (job #441235) | Cod sursa (job #2692377) | Cod sursa (job #2202111) | Cod sursa (job #1095152)
#include<cstdio>
int castig[1001],cost[1001],mat[2][10000001];
int max(int x,int y){
if(x>y)
return x;
else
return y;
}
int main(){
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
int x,y,s=0,i,j,g,w,min=99999999,sol;
scanf("%d%d",&g,&w);
for(i=1;i<=g;i++){
scanf("%d%d",&castig[i],&cost[i]);
s+=cost[i];
}
for(i=cost[1];i<=s;i++)
mat[1][i]=castig[1];
for(i=2;i<=g;i++){
for(j=1;j<=s;j++){
x=mat[1][j];
if(j-cost[i]>=0){
y=mat[1][j-cost[i]]+castig[i];
mat[2][j]=max(x,y);
}
else
mat[2][j]=mat[1][j];
}
for(j=1;j<=s;j++)
mat[1][j]=mat[2][j];
}
for(j=1;j<=s;j++)
if(mat[1][j]>=w&&j<min)
min=j;
printf("%d",min);
return 0;
}