Cod sursa(job #1650896)
Utilizator | Data | 11 martie 2016 21:25:03 | |
---|---|---|---|
Problema | Problema rucsacului | Scor | 35 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.55 kb |
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
int N, W;
int D[5010][10010];
int main()
{
ifstream i("rucsac.in");
ofstream o("rucsac.out");
i >> N >> W;
for(int a = 1; a <= N; a++)
{
int j, k;
i >> k >> j;
for(int b = 0; b <= W; b++)
{
D[a][b] = D[a - 1][b];
if(b >= k)
{
D[a][b] = max(D[a][b], D[a - 1][b - k] + j);
}
}
}
o << D[N][W];
return 0;
}