Pagini recente » Cod sursa (job #2257565) | Cod sursa (job #2195332) | Cod sursa (job #1978160) | Cod sursa (job #246125) | Cod sursa (job #872075)
Cod sursa(job #872075)
#include <fstream>
#define inf 2000000000
#define minim(a,b) (a<b)?a:b
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
int energ,cost;
int n,k,i,j;
int e[5005],trecut;
int main() {
f >> n >> k;
for (i=1;i<=5000;i++) e[i] = inf;
trecut = inf;
for (i=1;i<=n;i++) {
f >> energ >> cost;
for (j = k; j>=1; j--) {
if (j+energ >= k && e[j] != inf) trecut = minim(trecut,e[j]+cost);
else if (e[j] != inf) e[j+energ] = minim(e[j+energ],cost+e[j]);
}
if (energ >= k) trecut = minim(trecut,cost);
else e[energ] = minim(e[energ],cost);
}
if (trecut != inf) g << trecut << '\n';
else g << -1 << '\n';
return 0;
}