Pagini recente » Cod sursa (job #2140232) | Cod sursa (job #248971) | Cod sursa (job #402297) | Cod sursa (job #416820) | Cod sursa (job #1781528)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
main() {
ifstream cin("rucsac.in");
ofstream cout("rucsac.out");
int N, G;
cin>>N>>G;
vector<long> W(N), P(N);
vector<long> a(G+1);
fill(a.begin(), a.end(), -1);
for (int i = 0; i < N; i++) {
cin>>W[i]>>P[i];
for (int j = G; j>=W[i]; j--) {
if (a[j-W[i]]>-1) {
a[j] = max(a[j], a[j-W[i]]+P[i]);
}
}
if (a[W[i]] == -1) {
a[W[i]] = P[i];
}
}
cout<<*max_element(a.begin(), a.end());
}