Cod sursa(job #1562495)

Utilizator mariusn01Marius Nicoli mariusn01 Data 5 ianuarie 2016 10:26:00
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <fstream>
#define INF 50000010
using namespace std;

int D[5010];
int C[1010], E[1010];

int n, G, i, j, k;

int main () {
    ifstream fin("energii.in");
    ofstream fout("energii.out");

    fin>>n>>G;
    for (i=1;i<=n;i++) {
        fin>>E[i]>>C[i];
    }

    for (i=1;i<=G;i++)
        D[i] = INF;

    for (i=1;i<=n;i++) {
        for (j=G-1;j>=0;j--)
            if (D[j] != INF) {
                k = j+E[i];
                if (k > G)
                    k = G;
                if (D[k] > D[j] + C[i])
                    D[k] = D[j] + C[i];
            }
    }
    if (D[G] == INF)
        fout<<-1;
    else
        fout<<D[G];
    return 0;
}