Pagini recente » Cod sursa (job #1741520) | Cod sursa (job #2674368) | Cod sursa (job #2619748) | Cod sursa (job #2598751) | Cod sursa (job #2094206)
#include<bits/stdc++.h>
#define ll long long
#define pii pair<int,int>
#define pll pair<ll,ll>
#define fi first
#define se second
#define sz size
#define pb push_back
#define mp make_pair
#define bg begin
#define nd end
using namespace std;
const int maxn = 10005;
const int inf = (1e9);
int n,w,suf;
vector<int> old(maxn);
void initOld(vector<int>& old) {
for(int i=0;i<maxn;++i) old[i] = inf;
}
int main() {
freopen("energii.in", "r", stdin);
freopen("energii.out", "w", stdout);
ios_base::sync_with_stdio(false);
cin.tie(0);
initOld(old);
cin >> n;
cin >> w;
int x,y;
for(int ni=0;ni<n;++ni) {
cin >> x >> y;
suf+=x;
vector<int> curr(maxn);
for(int i=0;i<x;++i) curr[i] = old[i];
curr[x] = min(old[x],y);
for(int i=x+1;i<maxn;++i) {
curr[i] = min(old[i],old[i-x] + y);
}
old = curr;
}
if(suf < w) {
cout << -1 << '\n';
return 0;
}
int ans = inf;
for(int i=w;i<maxn;++i) {
ans = min(old[i],ans);
}
cout << ans << '\n';
return 0;
}