Cod sursa(job #1928578)
Utilizator | Data | 16 martie 2017 15:29:01 | |
---|---|---|---|
Problema | Problema rucsacului | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.5 kb |
#include <fstream>
#define NM 5005
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
struct obiect { int v, g; };
obiect V[NM];
int n, m, M[10005];
int main()
{
int i, j;
fin >> n >> m;
for (i = 1; i <= n; i++)
{
fin >> V[i].g >> V[i].v;
}
for (i = 1; i <= n; i++)
{
for (j = m; j >= 0; j--)
{
if (j >= V[i].g)
{
M[j] = (M[j] < M[j - V[i].g] + V[i].v) ? M[j - V[i].g]+V[i].v:M[j];
}
}
}
fout << M[m];
return 0;
}