Pagini recente » Cod sursa (job #1505626) | Cod sursa (job #1558862) | Cod sursa (job #31716) | Cod sursa (job #3174892) | Cod sursa (job #2750343)
#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 + 5];
int g[mxn + 5], p[10005];
int main()
{
bool sw = true;
fin >> n >> gmx;
for (int i = 1; i <= n; ++i)
fin >> g[i] >> p[i];
int ans = 0;
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]);
ans = max(ans, dp[sw][j]);
}
fout << ans << '\n';
fin.close();
fout.close();
return 0;
}