Pagini recente » Cod sursa (job #1840156) | Cod sursa (job #1821880) | Cod sursa (job #1539688) | Cod sursa (job #168712) | Cod sursa (job #1669868)
#include <fstream>
#include <cstring>
using namespace std;
FILE *fin, *fout;
int n, g, ci, gi, cmax[10010], sol;
int main()
{
int i, j;
fin = fopen("rucsac.in", "r");
fout = fopen("rucsac.out", "w");
fscanf(fin, "%d%d", &n, &g);
cmax[0] = 0;
for (i = 1; i <= g; i++)
cmax[i] = -1;
for (i = 1; i <= n; i++)
{
fscanf(fin, "%d%d", &gi, &ci);
for (j = g; j >= 0; j--)
{
if (cmax[j] != -1 && j + gi <= g)
{
if (cmax[j + gi] < ci + cmax[j])
{
cmax[j + gi] = ci + cmax[j];
if (cmax[j + gi] > sol)
sol = cmax[j + gi];
}
}
}
}
fprintf(fout, "%d\n", sol);
fclose(fout);
return 0;
}