Cod sursa(job #1115008)

Utilizator Paula-ElenaPaula-Elena Margarit Paula-Elena Data 21 februarie 2014 20:04:26
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <climits>
#include <fstream>
using namespace std;

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

const int MAXW = 15003;
const int MAXG = 10002;
const int INF = INT_MAX;

int G, W, d[MAXW], sol = INF;

void initializeaza()
{
    for (int i = 1; i <= W + MAXG; ++i)
        d[i] = INF;
}

int main()
{
    int put, cost;

    fin >> G >> W;
    initializeaza();

    for (int j = 0; j < G; ++j)
    {
        fin >> put >> cost;
        for (int i = W; i >= 0; --i)
            if ( d[i] != INF && d[i + put] > d[i] + cost )
                d[i + put] = d[i] + cost;
    }

    for ( int i = W + MAXG; i >= W; --i)
        if ( d[i] < sol )
            sol = d[i];

    if ( sol == INF )
        fout << "-1";
    else
        fout << sol;

    fin.close();
    fout.close();

    return 0;
}