Cod sursa(job #1283236)

Utilizator Laura.miLaura Mitrache Laura.mi Data 5 decembrie 2014 13:28:32
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <iostream>
#include <fstream>
//#include <algorithm>
using namespace std;

ifstream f("energii.in");
ofstream out("energii.out");
int g,w, eg[1002], cg[1002];
int a[1002][5002];
int infinit = 999999999;
int suma;
void Citire()
{
    int i;
    f>>g>>w;
    for(i=1;i<=g;i++)
    {
        f>>eg[i]>>cg[i];
        suma+=eg[i];
    }

}

void Solve()
{
    int i,j;
    int aux,x,y;
    for(i=1;i<=10001;i++)
        a[1][i] = infinit;
    a[1][eg[1]]= cg[1];

    for(i=2;i<=g;i++)
        for(j=1;j<=10000;j++)
        {
            x=infinit;
            y=infinit;
            aux = j - eg[i];
            if(aux >= 0)
                x = a[i-1][aux] + cg[i];

            y=a[i-1][j];

            a[i][j] = min(x,y);
        }

}
int main()
{
    Citire();
    if(suma < w ) out<<"-1\n";
    else
    {
        Solve();
        out<<a[g][w]<<"\n";
    }

    f.close();
    out.close();
    return 0;
}