Cod sursa(job #1174959)

Utilizator TataruTataru Mihai Tataru Data 24 aprilie 2014 11:37:55
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <iostream>
#include <fstream>
#include <climits>
#define inFile "energii.in"
#define outFile "energii.out"

using namespace std;

int cost[5001];

int main()
{
    int i,j,g,w,G[1001],C[1001];

    ifstream fin(inFile);
    fin>>g>>w;
    for(i=1;i<=g;i++)
        fin>>G[i]>>C[i];
    fin.close();

    for(j=1;j<=w;j++) cost[j]=INT_MAX;
    for(i=1;i<=g;i++)
        for(j=w;j>=1;j--)
        {
            if(G[i]>=j) cost[j]=min(cost[j],C[i]);
            else  cost[j]=min(cost[j],cost[j-G[i]]+C[i]);
        }

    ofstream fout(outFile);
    if(cost[w]==INT_MAX) fout<<"-1";
    else  fout<<cost[w];
    fout.close();
}