Cod sursa(job #1574684)
Utilizator | Data | 20 ianuarie 2016 19:28:53 | |
---|---|---|---|
Problema | Problema rucsacului | Scor | 35 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.52 kb |
#include <fstream>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int n,nr, sol,i,j;
int g[5001], p[5001];
int dp[5001][10001];
int main()
{
fin>>n>>nr;
for( i = 1; i <= n; ++i)
fin>>g[i]>>p[i];
for(i=1; i<=n; ++i)
for(j= 0; j<=nr; ++j)
{
dp[i][j] = dp[i-1][j];
if(g[i]<=j)
dp[i][j] = max(dp[i][j], dp[i-1][j-g[i]]+p[i]);
}
sol = dp[n][nr];
fout<<sol;
}