Pagini recente » Cod sursa (job #1290576) | Cod sursa (job #2483746) | Monitorul de evaluare | Cod sursa (job #1804414) | Cod sursa (job #3223089)
#include <iostream>
#include <fstream>
using namespace std;
//ifstream fin("rucsac.in");
//ofstream fout("rucsac.out");
struct
{
int gr, pr;
} ob[5001];
int n, g, i, j, dp[10001], pmax;
int main()
{
cin >> n >> g;
for(i = 1; i <= n; i++)
{
cin >> ob[i].gr >> ob[i].pr;
}
for(i = 1; i <= n; i++)
{
/*
cout << "pas " << i << '\n';
for(j = 0; j <= g; j++)
{
cout << dp[i % 2][j] << ' ';
}
cout << '\n';
for(j = 0; j <= g; j++)
{
cout << dp[1 - i % 2][j] << ' ';
}*/
for(j = g; j >= ob[i].gr; j--)
{
dp[j] = max(dp[j - ob[i].gr] + ob[i].pr, dp[j]);
}
}
for(j = 0; j <= g; j++)
{
pmax = max(pmax, dp[j]);
}
cout << pmax;
return 0;
}