Cod sursa(job #1655938)

Utilizator TimitocArdelean Andrei Timotei Timitoc Data 18 martie 2016 15:26:14
Problema Energii Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <iostream>
#include <cstdio>
#define MAXW 5050
#define inf 0x3fffffff

using namespace std;

int g, w;

int main()
{
    freopen("energii.in", "r", stdin);
    freopen("energii.out", "w", stdout);

    int din[MAXW];
    scanf("%d %d", &g, &w);
    for (int i = 1; i <= w+1; i++)
        din[i] = inf;
    din[0] = 0;
    for (int i = 1; i <= g; i++) {
        int eg, cg;
        scanf("%d %d", &eg, &cg);
        int best = inf;
        for (int j = w-eg; j <= w; j++)
            best = std::min(best, din[j]);
        din[w] = std::min(din[w], best+cg);
        for (int j = w-eg-1; j >= 0; j--)
            din[j+eg] = std::min(din[j+eg], din[j]+cg);
    }
    printf("%d", din[w]);

    return 0;
}