Cod sursa(job #789634)
| Utilizator | Data | 18 septembrie 2012 19:43:24 | |
|---|---|---|---|
| Problema | Problema rucsacului | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.46 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream in ("rucsac.in");
ofstream out ("rucsac.out");
int W[5010], P[5010];
int Best[10010];
int main ()
{
int N, G, i, j;
in >> N >> G;
for (i = 1; i <= N; i ++)
in >> W[i] >> P[i];
for (i = 1; i <= N; i ++)
for (j = G - W[i]; j >= 0; j --)
if (Best[ j + W[i] ] < Best[j] + P[i])
Best[ j + W[i] ] = Best[j] + P[i];
out << Best[G];
return 0;
}