Cod sursa(job #1703473)
Utilizator | Data | 16 mai 2016 23:09:23 | |
---|---|---|---|
Problema | Problema rucsacului | Scor | 100 |
Compilator | c | Status | done |
Runda | Arhiva educationala | Marime | 0.45 kb |
#include <stdio.h>
#include <stdlib.h>
#define maxim(a, b) ((a > b) ? a : b );
int d[10001];
int main(){
int n, g, i, j, w, p;
FILE *fin, *fout;
fin=fopen("rucsac.in", "r");
fout=fopen("rucsac.out", "w");
fscanf(fin, "%d%d", &n, &g);
for(i=1; i<=n; i++){
fscanf(fin, "%d%d", &w, &p);
for(j=g; j>=w; j--)
d[j]=maxim(d[j], d[j-w] + p);
}
fprintf(fout, "%d", d[g]);
fclose(fin);
fclose(fout);
return 0;
}