Cod sursa(job #981462)

Utilizator FlameingoAiordachioaei Marius Flameingo Data 7 august 2013 11:15:58
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <cstdio>
#include <algorithm>
using namespace std;

const int WMAX = 5000000, INFI = 2e9;
int D[WMAX];

int main () {

    freopen ("rucsac.in", "r", stdin);
    freopen ("rucsac.out", "w", stdout);
    int N, W, i, j, a, b;
    scanf ("%d%d", &N, &W);
    for (i = 1; i <= W; ++i)
        D[i] = INFI;
    for (i = 1; i <= N; ++i) {
        scanf ("%d%d", &a, &b);
        for (j = W; j > a; --j)
            D[j] = min (D[j], D[j - a] + b);
        for (; j >= 1; --j)
            D[j] = min (D[j], b);
    }
    if (D[W] != INFI)
        printf ("%d", D[W]);
    else
        printf ("-1");

}