Cod sursa(job #1540638)

Utilizator tudorgalatanRoman Tudor tudorgalatan Data 2 decembrie 2015 23:33:46
Problema Energii Scor 35
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <fstream>

#define INF 0x3f3f3f3f
#define NO1 101
#define NO2 5001

using namespace std;

ifstream InF ("energii.in");
ofstream OutF ("energii.out");

int EG[NO1], CG[NO1];
int G, W;

int aux[NO1][NO2];
int i, j;

void read ();
void solve ();
void print ();

int main()
{
    read ();
    solve();
    print ();
    return 0;
}

void read ()
{
    InF >> G >> W;
    for (i=1; i<=G; i++)
        InF >> EG[i] >> CG[i];
}

void solve ()
{
    for (i=0; i<=G; i++)
        for (j=1; j<=W; j++)
            aux[i][j] = INF;
    for (i=1; i<=G; i++)
        for (j=1; j<=W; j++)
            if (j >= EG[i])
                aux[i][j] = min (aux[i-1][j], aux[i-1][j-EG[i]]+CG[i]);
            else
                aux[i][j] = min (aux[i-1][j], CG[i]);
}

void print ()
{
    if (aux[G][W] == INF)
        OutF << "-1";
    else
        OutF << aux[G][W];
}