Pagini recente » Cod sursa (job #1157953) | Cod sursa (job #298135) | Cod sursa (job #2649910) | Cod sursa (job #1872819) | Cod sursa (job #3218221)
#include <iostream>
#include <fstream>
#define MAXN 1003
#define MAXDP 10003
#define INF 1000000100
using namespace std;
int g,w,dp[MAXDP];
pair<int, int> v[MAXN];
ifstream fin("energii.in");
ofstream fout("energii.out");
int main()
{
fin >> g >> w;
for(int i = 1; i <= g; i++){
fin >> v[i].first >> v[i].second;
}
for(int i = 1; i < MAXDP; i++){
dp[i] = INF;
}
for(int i = 1; i <= g; i++){
for(int j = MAXDP-1; j >= v[i].first; j--){
dp[j] = min(dp[j], dp[j-v[i].first]+v[i].second);
}
}
int ans = INF;
for(int i = w; i < MAXDP; i++){
ans = min(ans, dp[i]);
}
fout << ((ans==INF)?-1:ans);
return 0;
}