Pagini recente » Cod sursa (job #2481635) | Cod sursa (job #267078) | Cod sursa (job #71513) | Cod sursa (job #3032557) | Cod sursa (job #2955105)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("rucsac.in");
ofstream fout ("rucsac.out");
void usain_bolt()
{
ios::sync_with_stdio(false);
fin.tie(0);
}
const int N_MAX = 1e4 + 5;
const int G_MAX = 1e6 + 5;
int main()
{
usain_bolt();
int N, G;
fin >> N >> G;
vector < int > w(N);
vector < int > p(N);
vector < vector < int > > dp(N, vector < int > (G + 1, 0));
for(int i = 0; i < N; ++i) {
fin >> w[i] >> p[i];
}
for(int i = 0; i < N; ++i) {
for(int j = 0; j <= G; ++j) {
if (i > 0) {
dp[i][j] = dp[i - 1][j];
} else {
dp[i][j] = 0;
}
if(j >= w[i]) {
if (i > 0) {
dp[i][j] = max(dp[i][j], dp[i - 1][j - w[i]] + p[i]);
} else {
dp[i][j] = p[i];
}
}
}
}
fout << dp[N - 1][G];
return 0;
}