Cod sursa(job #1657886)
Utilizator | Data | 20 martie 2016 21:13:02 | |
---|---|---|---|
Problema | Problema rucsacului | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.68 kb |
#include <fstream>
#include <cstring>
using namespace std;
FILE *fin, *fout;
int n, g, pi, gi, v[10010], ante, now = 1, sol;
int main()
{
int i, j;
fin = fopen("rucsac.in", "r");
fout = fopen("rucsac.out", "w");
fscanf(fin, "%d%d", &n, &g);
v[0] = 0;
for (i = 1; i <= n; i++)
{
fscanf(fin, "%d%d", &gi, &pi);
for (j = g - gi; j >= 0; j--)
{
if (v[j + gi] < v[j] + pi)
{
v[j + gi] = v[j] + pi;
if (v[j + gi] > sol)
sol = v[j + gi];
}
}
}
fprintf(fout, "%d\n", sol);
fclose(fout);
return 0;
}