Cod sursa(job #1174964)

Utilizator TataruTataru Mihai Tataru Data 24 aprilie 2014 11:42:02
Problema Energii Scor 100
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]=1234567;
    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]==1234567) fout<<"-1";
    else  fout<<cost[w];
    fout.close();
}