Pagini recente » Cod sursa (job #591519) | Cod sursa (job #2224771) | Cod sursa (job #364664) | Cod sursa (job #986943) | Cod sursa (job #3215925)
#include <bits/stdc++.h>
using namespace std;
using pii = pair<int,int>;
#define pb push_back
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
const int N = 1e5+3;
int n, mxw, t;
vector<int> W, P;
vector<vector<int>> dp;
int main(){
fin >> n >> mxw;
W.resize(n+2); P.resize(n+2);
dp.resize(2, vector<int>(mxw + 2));
for (int i = 1; i <= n; i++) fin >> W[i] >> P[i];
for (int i = 1; i <= n; i++, t ^= 1)
for (int w = 0; w <= mxw; w++){
dp[t][w] = dp[!t][w];
if (W[i] <= w) dp[t][w] = max(dp[t][w], dp[!t][w-W[i]] + P[i]);
}
fout << dp[!t][mxw];
return 0;
}