Pagini recente » Cod sursa (job #2450707) | Cod sursa (job #2624822) | Cod sursa (job #2220916) | Cod sursa (job #2537573) | Cod sursa (job #2857016)
#include <fstream>
#include <algorithm>
#include <vector>
using namespace std;
#define ll long long
ifstream cin("rucsac.in");
ofstream cout("rucsac.out");
vector <ll> x;
ll n, g;
void hatizsak(ll weight, ll price){
for(ll i = g - weight; i >= 1; --i){
if(x[i])
x[i + weight] = max(x[i + weight], x[i] + price);
if(i == weight)
x[i] = max(x[i], price);
}
}
int main(){
cin >> n >> g;
x.resize(g + 1, 0);
for(ll i = 1, w, p; i <= n; ++i){
cin >> w >> p;
hatizsak(w, p);
}
ll maxim = x[g];
for(ll i = g - 1; i >= 1; --i)
maxim = max(maxim, x[i]);
cout << maxim;
return 0;
}