Cod sursa(job #981377)

Utilizator FlameingoAiordachioaei Marius Flameingo Data 6 august 2013 22:29:50
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;

const int NMAX = 5003, INFI = 2e9;
int D[2][NMAX];

int main () {

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

}