Cod sursa(job #1689111)
Utilizator | Data | 13 aprilie 2016 22:51:55 | |
---|---|---|---|
Problema | Problema rucsacului | Scor | 100 |
Compilator | c | Status | done |
Runda | Arhiva educationala | Marime | 0.51 kb |
#include <stdio.h>
int s[10000];
int main(){
FILE *fin=fopen("rucsac.in","r");
FILE *fout=fopen("rucsac.out","w");
int n,g,w,p,i,j,max;
fscanf(fin,"%d%d",&n,&g);
max=0;
for(i=0; i<n; i++){
fscanf(fin,"%d%d",&w,&p);
for(j=g-w; j>=0; j--)
if(s[j]+p>s[j+w]){
s[j+w]=s[j]+p;
if(s[j+w]>max)
max=s[j+w];
}
}
fprintf(fout,"%d\n",max);
fclose(fin);
fclose(fout);
return 0;
}