Pagini recente » Cod sursa (job #1689859) | Cod sursa (job #93643) | Cod sursa (job #1789698) | Cod sursa (job #151902) | Cod sursa (job #2999766)
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("rucsac.in");
ofstream cout("rucsac.out");
int dp[2][100001];
struct obiect{
int gr;
int pr;
};
vector<obiect> v;
int main()
{
int n, g;
cin >> n >> g;
v.resize(5001);
for(int i = 1; i <= n; i++)
{
cin >> v[i].gr >> v[i].pr;
}
for(int i = 1; i <= n; i++)
{
for(int j = 1; j <= g; j++)
{
int l_c = i % 2;
int l_a = (i - 1) % 2;
if(j - v[i].gr < 0)
{
dp[l_c][j] = dp[l_a][j];
}
else
{
dp[l_c][j] = max((dp[l_a][j - v[i].gr] + v[i].pr), dp[l_a][j]);
}
}
}
cout << dp[n % 2][g];
return 0;
}