Pagini recente » Cod sursa (job #2642546) | Cod sursa (job #955103) | Cod sursa (job #878282) | Cod sursa (job #2435965) | Cod sursa (job #1341595)
#include <stdio.h>
#define max(x,y) (x>y?x:y)
#define G_MAX (10000)
int state[G_MAX];
int main()
{
FILE *fin=fopen("rucsac.in","r"),
*fout=fopen("rucsac.out","w");
int n,gmax;
int g,p;
int i,j;
fscanf(fin,"%d %d",&n,&gmax);
for(i=0;i<n;i++)
{
fscanf(fin,"%d %d",&g,&p);
for(j=gmax;j>=g;j--)//mai mult de greutate max nu e nevoie, parcurgere din spate in fata pentru a nu se suprapune val.
state[j]=max(state[j],state[j-g]+p);//merita sa adugam profitul in ghiozdan?
}
fprintf(fout,"%d",state[gmax]);
fclose(fin);
fclose(fout);
return 0;
}