Cod sursa(job #1657965)
Utilizator | stefan bogdan stefan_bogdan | Data | 20 martie 2016 22:16:50 |
---|---|---|---|
Problema | Problema rucsacului | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.51 kb |
#include <stdio.h>
FILE *input, *output;
int N, G, Cmax[10001], g, c;
int main() {
input = fopen("rucsac.in", "r");
output = fopen("rucsac.out", "w");
fscanf(input, "%d %d", &N, &G);
for (int i = 1; i <= N; i++) {
fscanf(input, "%d %d", &g, &c);
for (int gr = G; gr >= g; gr--)
if (Cmax[gr] < Cmax[gr-g] + c)
Cmax[gr] = Cmax[gr-g] + c;
}
fprintf(output, "%d", Cmax[G]);
fclose(input);
fclose(output);
return 0;
}