Pagini recente » Ciorna | Cod sursa (job #563335) | Cod sursa (job #146388) | Cod sursa (job #1644591) | Cod sursa (job #800476)
Cod sursa(job #800476)
#include <cstdio>
#include <algorithm>
#define NMAX 10001
#define GMAX 5001
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;
}