Pagini recente » Cod sursa (job #1323318) | Cod sursa (job #2420525) | Cod sursa (job #205196) | Cod sursa (job #2537879) | Cod sursa (job #3280043)
#include <iostream>
#include <fstream>
std::ifstream fin("rucsac.in");
std::ofstream fout("rucsac.out");
#define MOD 1000000007
int dp[5001][5001];
int w[5001];
int p[5001];
int main()
{
int n, g;
fin >> n >> g;
for(int i = 1; i <= n; i++)
{
fin >> w[i] >> p[i];// weight , power
}
for(int i = 1; i <=n ;i++)
{
for(int curg = 0; curg <= g; curg++)
{
//luam rpirma data suma anteriaora
dp[i][curg] = dp[i - 1][curg];
//verif daca nu am intrecut limita de greutate
if(w[i] <= curg)
{
dp[i][curg] = std::max(dp[i][curg], dp[i - 1][curg - w[i]] + p[i]);
}
}
}
fout << dp[n][g];
return 0;
}