Pagini recente » Cod sursa (job #2443757) | Cod sursa (job #1310262) | Cod sursa (job #1745341) | Cod sursa (job #2303363) | Cod sursa (job #3181126)
#include <bits/stdc++.h>
using namespace std;
using pii = pair<int,int>;
#define w first
#define p second
#define pb push_back
ifstream f("rucsac.in");
ofstream g("rucsac.out");
const int N = 5003;
const int W = 10003;
int n, mxw, dp[2][W];
pii v[N];
void read(), rucsac();
int main()
{
read();
rucsac();
return 0;
}
void read(){
f >> n >> mxw;
for (int i = 1; i <= n; i++)
f >> v[i].w >> v[i].p;
}
void rucsac(){
int k = 0;
for (int i = 1; i <= n; i++, k ^= 1)
for (int w = 0; w <= mxw; w++){
dp[k][w] = dp[!k][w];
if (v[i].w <= w)
dp[k][w] = max(dp[k][w], dp[!k][w-v[i].w]+v[i].p);
}
g << dp[!k][mxw];
}