Pagini recente » Cod sursa (job #2779530) | Cod sursa (job #2773551) | Cod sursa (job #3004104) | Cod sursa (job #2335270) | Cod sursa (job #2750338)
#include <bits/stdc++.h>
using namespace std;
const string filename = "rucsac";
using ll = long long;
ifstream fin(filename + ".in");
ofstream fout(filename + ".out");
const int mxn = 5000;
int n, gmx;
int dp[2][mxn];
int g[mxn], p[mxn];
int main()
{
bool sw = true;
fin >> n >> gmx;
for (int i = 1; i <= n; ++i)
fin >> g[i] >> p[i];
for (int i = 1; i <= n; ++i, sw = !sw)
for (int j = 1; j <= gmx; ++j)
if (g[i] > j)
dp[sw][j] = dp[!sw][j];
else dp[sw][j] = max(dp[!sw][j], dp[!sw][j - g[i]] + p[i]);
fout << dp[!sw][gmx] << '\n';
fin.close();
fout.close();
return 0;
}