Pagini recente » Cod sursa (job #2638770) | Cod sursa (job #455078) | Cod sursa (job #1394047) | Cod sursa (job #2595789) | Cod sursa (job #2178394)
#include <bits/stdc++.h>
using namespace std;
int n, w, dp[1010][5010], ans = 1e9;
pair <int,int> a[1010];
#define x first
#define y second
int main(){
ifstream cin ("energii.in");
ofstream cout ("energii.out");
cin >> n >> w;
for (int i=1; i<=n; i++) cin >> a[i].x >> a[i].y;
for (int i=1; i<=n; i++){
for (int j=0; j<w; j++) dp[i][j] = 1e9;
}
for (int i=1; i<=n; i++){
for (int j=0; j<w; j++){
if (dp[i-1][j] || !j){
dp[i][j] = min (dp[i][j], dp[i-1][j]);
if (j + a[i].x >= w) ans = min(ans, dp[i-1][j] + a[i].y);
else dp[i][j + a[i].x] = min(dp[i][j+a[i].x], dp[i-1][j] + a[i].y);
}
}
}
cout << (ans == 1e9?-1:ans);
return 0;
}