Pagini recente » Cod sursa (job #2395156) | Cod sursa (job #3230178) | Cod sursa (job #890919) | Cod sursa (job #1573980) | Cod sursa (job #800477)
Cod sursa(job #800477)
#include <cstdio>
#include <algorithm>
#define NMAX 5001
#define GMAX 10001
using namespace std;
FILE *inFile = fopen ("rucsac.in", "r");
FILE *outFile = fopen ("rucsac.out", "w");
int n;
int g;
int w[NMAX];
int p[NMAX];
int sol[GMAX];
void read()
{
fscanf (inFile, "%d %d\n", &n, &g);
for (int i = 1; i <= n; ++ i)
fscanf (inFile, "%d %d\n", &w[i], &p[i]);
}
int solve()
{
int res = 0;
for (int i = 1; i <= n; ++ i)
for (int j = g - w[i]; j >= 0; -- j)
if (sol[j + w[i]] < sol[j] + p[i])
{
sol[j + w[i]] = sol[j] + p[i];
res = max (res, sol[j + w[i]]);
}
return res;
}
int main()
{
read();
fprintf (outFile, "%d\n", solve());
return 0;
}