Pagini recente » Cod sursa (job #2163601) | Cod sursa (job #1752072) | Cod sursa (job #400021) | Cod sursa (job #1671093) | Cod sursa (job #2780303)
//
// Created by Andrei Covaci on 03.09.2021.
//
#include <fstream>
#include <iostream>
#include <vector>
using namespace std;
//#define INPUT "rucsac.in"
//#define OUTPUT "rucsac.out"
#define INPUT "input.in"
#define OUTPUT "output.out"
#define usi unsigned short int
int maxw, n;
// [weight][items]
int din[2][10001];
vector<pair<usi, usi>> items;
int read() {
ifstream in(INPUT);
int w, p;
in >> n >> maxw;
for(int i = 0; i < n; ++i) {
in >> w >> p;
items.emplace_back(w, p);
}
in.close();
return 0;
}
int solve(int _) {
for(int j = 1; j <= n; ++j) {
for(int i = 1; i <= maxw; ++i) {
int aux = (i >= items[j - 1].first) ? din[0][i - items[j - 1].first] + items[j - 1].second : 0;
din[1][i] = max(din[0][i], aux);
}
swap(din[0], din[1]);
}
return din[0][maxw];
}
void print(int res) {
ofstream out(OUTPUT);
out << res;
out.close();
}
int main() {
auto in = read();
auto out = solve(in);
print(out);
return 0;
}