Pagini recente » Cod sursa (job #3169989) | Cod sursa (job #1349570) | Cod sursa (job #761553) | Cod sursa (job #1915891) | Cod sursa (job #4418)
Cod sursa(job #4418)
#include <cstdio>
using namespace std;
int n, w, i;
int sol[5001];
int main() {
freopen("energii.in", "r", stdin);
freopen("energii.out", "w", stdout);
scanf("%d %d", &n, &w);
for (i=0; i<=w; i++) sol[i] = 999999;
sol[0] = 0;
for (int k=1; k<=n; k++) {
int e, c;
scanf("%d %d", &e, &c);
int X = sol[w];
for (i=w-e+1; i<=w; i++) if (sol[i] + c < X ) X = sol[i] + c;
for (i = w-e; i>=0; i--)
if (sol[i+e] > sol[i] + c) sol[i+e] = sol[i] + c;
if (X < sol[w]) sol[w] = X;
}
if (sol[w] == 999999) sol[w] = -1;
printf("%d\n", sol[w]);
return 0;
}