Pagini recente » Diferente pentru utilizator/gerd13 intre reviziile 50 si 49 | Diferente pentru home intre reviziile 818 si 817 | Diferente pentru utilizator/andreid31 intre reviziile 7 si 12 | Monitorul de evaluare | Cod sursa (job #2652340)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
int n, gmax, dp[5005][10005], gc, vc;
int main()
{
f>>n>>gmax;
for (int i=1;i<=n;i++)
{
f>>gc>>vc;
for (int j=1; j<gc; j++)
{
dp[i][j]=dp[i-1][j];
}
for (int j=gc;j<=gmax; ++j)
{
dp[i][j] = max(dp[i-1][j], dp[i - 1][j - gc] + vc);
}
}
g<<dp[n][gmax];
return 0;
}