Cod sursa(job #1684544)
| Utilizator | Data | 11 aprilie 2016 09:48:36 | |
|---|---|---|---|
| Problema | Problema rucsacului | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.6 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
short N, G;
short W[5001], P[5001];
short i, j;
int m[10001], maxim;
int main()
{
fin>>N>>G;
for(i = 0; i< N; i++)
{
fin>>W[i]>>P[i];
}
for(i = 0; i < N; i++)
{
for(j = G - W[i]; j >= 0; j--)
{
if(m[j + W[i]] < m[j] + P[i])
{
m[j + W[i]] = m[j] + P[i];
if(m[j + W[i]] > maxim) maxim = m[j + W[i]];
}
}
}
fout<<maxim;
return 0;
}
