Pagini recente » Cod sursa (job #946973) | Cod sursa (job #1766097) | Cod sursa (job #1071120) | Cod sursa (job #1309948) | Cod sursa (job #1808525)
#include<stdio.h>
struct product {
int val,g;
} v[5001];
int profit[10001];
int main (){
FILE *in,*out;
in = fopen ("rucsac.in","r");
out = fopen ("rucsac.out","w");
int n,g,i,j,maxim;
fscanf (in,"%d%d",&n,&g);
for (i=1;i<=n;i++){
fscanf (in,"%d%d",&v[i].g,&v[i].val);
}
//bord
for (i=1;i<=g;i++)
profit[i] = -1;
profit[0] = 0;
maxim = 0;
for (i=1;i<=n;i++){
for (j=g-v[i].g;j>=0;j--){
if (profit[j] != -1 && profit[j+v[i].g] < profit[j] + v[i].val){
profit[j+v[i].g] = profit[j] + v[i].val;
maxim = maxim > profit[j+v[i].g] ? maxim : profit[j+v[i].g];
}
}
}
fprintf (out,"%d",maxim);
fclose (in);
fclose (out);
return 0;
}