Pagini recente » Cod sursa (job #1489758) | Cod sursa (job #168089) | Cod sursa (job #1119306) | Cod sursa (job #2302502) | Cod sursa (job #2442589)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
const int inf = 0x3f3f3f3f, enmax = 10000;
int n, w, cost[1005], en[1005], d[10005];
int main(){
fin >> n >> w;
for (int i = 1; i <= n; i++)
fin >> en[i] >> cost[i];
for (int i = 1; i <= enmax; i++)
d[i] = inf;
int cmin = inf;
for (int i = 1; i <= n; i++)
for (int j = enmax; j >= 1; j--){
if (j - en[i] >= 0)
d[j] = min(d[j], min(d[j - en[i]] + cost[i], inf));
if (j >= w)
cmin = min(cmin, d[j]);
}
if (cmin == inf)
cmin = -1;
fout << cmin << '\n';
return 0;
}