Cod sursa(job #1773265)
| Utilizator | Data | 7 octombrie 2016 18:16:45 | |
|---|---|---|---|
| Problema | Problema rucsacului | Scor | 100 |
| Compilator | c | Status | done |
| Runda | Arhiva educationala | Marime | 0.53 kb |
#include <stdio.h>
#include <stdlib.h>
inline int max(a,b){
if(a<b) return b;
else return a;
}
int g[5000],p[5000],v[10001];
int main()
{
FILE*fin,*fout;
int N,G,i,gr;
fin=fopen("rucsac.in","r");
fscanf(fin,"%d%d",&N,&G);
for(i=0;i<N;i++){
fscanf(fin,"%d%d",&g[i],&p[i]);
}
for(i=0;i<N;i++)
for(gr=G;gr>=g[i];gr--)
v[gr]=max(v[gr],v[gr-g[i]]+p[i]);
fout=fopen("rucsac.out","w");
fprintf(fout,"%d\n",v[G]);
fclose(fout);
return 0;
}
