Pagini recente » Cod sursa (job #1359079) | Cod sursa (job #3141597) | Cod sursa (job #625739) | Cod sursa (job #2252076) | Cod sursa (job #2569919)
#include <bits/stdc++.h>
using namespace std;
ifstream in("rucsac.in");
ofstream out("rucsac.out");
const int DIM = 1e4 +7;
const int DIM2 = 5007;
int dp[2][DIM];
pair <int,int> v[DIM2];
int main()
{
int n, g;
cin >> n >> g;
for(int i = 1; i <= n; i++)
{
int x, y;
cin >> x >> y;
v[i] = {x,y};
}
int l = 1;
for(int i = 1; i <= n; i++)
{
l = 1 - l;
int w = v[i].first;
int p = v[i].second;
for(int j = 0; j <= g; j++)
{
dp[1 - l][j] = dp[l][j];
if(w <= j)
dp[1 - l][j] = max(dp[1 - l][j],dp[l][j - w] + p);
}
}
cout << dp[n % 2][g];
return 0;
}