Cod sursa(job #1668232)
Utilizator | Data | 29 martie 2016 17:31:48 | |
---|---|---|---|
Problema | Problema rucsacului | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.53 kb |
#include <fstream>
#include <vector>
#include <algorithm>
#define NMAX 300001
using namespace std;
int sol[3001];
int main()
{
int n, maxG, x, y;
int g[NMAX], p[NMAX];
ifstream f("ruksak.in");
f >> n >> maxG;
for (int i = 1; i <= n; i++)
{
f >> g[i] >> p[i];
}
f.close();
int k, c;
for (int i = 1; i <= n; i++)
{
for (int j = maxG - g[i]; j >= 0; j--)
{
sol[j + g[i]] = max(sol[j + g[i]], sol[j] + p[i]);
}
}
ofstream gout("ruksak.out");
gout << sol[maxG];
gout.close();
return 0;
}