Pagini recente » Cod sursa (job #1922854) | Cod sursa (job #1376565) | Cod sursa (job #2925975) | Cod sursa (job #2157197) | Cod sursa (job #872065)
Cod sursa(job #872065)
#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);
}
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;
}