Cod sursa(job #2193384)
Utilizator | Data | 9 aprilie 2018 21:37:35 | |
---|---|---|---|
Problema | Problema rucsacului | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.53 kb |
#include <iostream>
#include <fstream>
#define GMAX 10002
#define NMAX 5002
using namespace std;
ifstream f("rucsac.in");
ofstream o("rucsac.out");
int dp[GMAX], gt;
int n,g;
int main()
{
f >> n >> g;
int w,p;
for(int i = 1; i <= n; ++i)
{
f >> w >> p;
gt = min(gt+w,g);
for(int j = gt; j >= w; --j)
dp[j] = max(dp[j],dp[j-w]+p);
}
int mmx = -1;
for(int i = 1; i <= g; ++i)
mmx = max(mmx, dp[i]);
o << mmx << '\n';
return 0;
}