Pagini recente » Cod sursa (job #628839) | Cod sursa (job #1627846) | Cod sursa (job #1630172) | Cod sursa (job #2329307) | Cod sursa (job #668058)
Cod sursa(job #668058)
#include<iostream>
#include<fstream>
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
const int MAXN = 1005;
const int MAXW = 5005;
const int MAXSUM = 20000;
int c[MAXW], d[MAXW], e[MAXN], cost[MAXN];
int main()
{
int gen, w;
f >> gen >> w;
for (int i = 1; i <= gen; i++) {
f >> e[i] >> cost[i];}
for (int i = 0; i <= w; i++) {
c[i] = MAXSUM;
d[i] = MAXSUM;
}
c[0] = 0;
c[e[1]] = cost[1];
for (int i = 2; i <= gen; i++) {
for (int j = 0; j <= w; j++) {
if (c[j] < MAXSUM) {
d[j] = min(d[j], c[j]);
d[min(j+e[i],w)] = min(d[min(j+e[i],w)], c[j]+cost[i]);
}
}
for (int j = 0; j <= w; j++) {
c[j] = d[j];
}}
if (c[w] < MAXSUM) {
g << c[w] << '\n';
} else {
g << "-1" << '\n';
}
return 0;
}