Pagini recente » Cod sursa (job #911889) | Cod sursa (job #2388933) | Cod sursa (job #2391073) | Cod sursa (job #2309597) | Cod sursa (job #2588080)
#include <stdio.h>
#include <stdlib.h>
#define NMAX 5000
struct obiect {
int g;
int pr;
};
struct obiect v[NMAX+1];
int d[2][NMAX*2+1];
int GMAX=10000;
int max (int a,int b){
if(a>b){
return a;
}
return b;
}
int main() {
FILE *fin,*fout;
fin=fopen("rucsac1.in","r");
fout=fopen("rucsac1.out","w");
int n,G,i,j;
fscanf(fin,"%d%d",&n,&G);
for(i=1;i<=n;i++){
fscanf(fin,"%d%d",&v[i].g,&v[i].pr);
}
for(i=1;i<=n;i++){
d[i%2][0]=0;
for(j=0;j<=GMAX;j++){
//if(d[(i-1)%2][j-v[i].g]!=0)
if(j>=v[i].g)
d[i%2][j]=max(d[i%2][j], d[(i-1)%2][j-v[i].g]+v[i].pr);
d[i%2][j]=max(d[i%2][j], d[(i-1)%2][j]);
}
}
fprintf(fout,"%d",d[n%2][G]);
fclose(fin);
fclose(fout);
return 0;
}