Cod sursa(job #1138323)

Utilizator irimiecIrimie Catalin irimiec Data 9 martie 2014 21:23:34
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <fstream>
#define MMAX (1<<26)

using namespace std;

ifstream f("energii.in");
ofstream g("energii.out");

int G, w, e[1005], c[1005], cost[1005][5005];

int main()
{
    int i,j;
    f >> G >> w;
    for(i = 1; i <= G; ++i)
    {
        f >> e[i] >> c[i];
    }
    for(j = 0; j <= w; ++j) cost[0][j] = 1 << 30;
    for(i = 0; i <= G; ++i) cost[i][0] = 1 << 30;
    for(i = 1; i <= G; ++i)
    {
        for(j = 1; j <= w; ++j)
        {
            if(j > e[i])
            {
                cost[i][j] = min(cost[i - 1][j], cost[i - 1][j - e[i]] + c[i]);
            }
            else
            {
                cost[i][j] = min(cost[i - 1][j], c[i]);
            }
        }
    }
    if(cost[G][w] != 1 << 30)
    {
        g << cost[G][w] << '\n';
    }
    else
    {
        g << -1 << '\n';
    }
}