Pagini recente » Cod sursa (job #2190679) | Cod sursa (job #3243324) | Cod sursa (job #1981047) | Cod sursa (job #2175090) | Cod sursa (job #2921920)
#include <fstream>
#include <iostream>
#include <vector>
#include <cassert>
#include <cstring>
#include <set>
#include <unordered_map>
#include <memory>
#include <deque>
#include <queue>
#include <iomanip>
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
int main() {
int N, W;
f >> N >> W;
vector<int> dp(W + 1);
for (int i = 0; i < N; i++) {
int w, p;
f >> w >> p;
for (int tw = W; tw >= w; tw--)
dp[tw] = max(dp[tw], dp[tw - w] + p);
}
for (int tw = 0; tw <= W; tw++)
dp[tw] = max(dp[tw], dp[tw - 1]);
g << dp[W] << '\n';
f.close();
g.close();
return 0;
}