Pagini recente » Cod sursa (job #407201) | Cod sursa (job #940326) | Cod sursa (job #1835621) | Cod sursa (job #2509933) | Cod sursa (job #2942499)
#include <fstream>
using namespace std;
ifstream cin("energii.in");
ofstream cout("energii.out");
const int NMAX = 1e3;
const int WMAX = 5e3;
const int GMAX = 1e4;
const int inf = 1e9;
struct generator{
int energie, cost;
};
generator v[NMAX + 1];
int cost[WMAX + GMAX + 5];
int main(){
int n = 0, w = 0;
cin >> n >> w;
for(int i = 0; i <= GMAX + WMAX; i++)
cost[i] = inf;
for(int i = 1; i <= n; i++)
cin >> v[i].energie >> v[i].cost;
cost[v[1].energie] = v[1].cost;
for(int i = 2; i <= n; i++){
for(int j = WMAX + GMAX; j >= v[i].energie; j--)
cost[j] = min(cost[j], cost[j - v[i].energie] + v[i].cost);
cost[v[i].energie] = min(cost[v[i].energie], v[i].cost);
}
int mini = inf;
for(int i = w; i <= WMAX + GMAX; i++)
mini = min(mini, cost[i]);
if(mini == inf){
cout << -1;
return 0;
}
cout << mini;
return 0;
}