Cod sursa(job #904680)

Utilizator marysMaria-Luiza marys Data 4 martie 2013 18:55:36
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int g,w,et,e[10001],c[10001];
bool x[10001];

int calculeaza()
{
    int i,j;
    for(i=1;i<=w;i++)
    {
        if(x[i])
            x[i+c[i]] = true;
        x[c[i]] = true;
    }

    for(i=w;i>=1;i--)
        if(x[i]==true)
            return c[i];
}

int main()
{
    int i,j,ok=0;;
    in>>g>>w;
    for(i=1;i<=g;i++)
        in>>e[i]>>c[i];

    for(i=1;i<=g;i++)
        {
            et+=e[i];
            if(e[i]==w)
            {
                out<<c[i];
                ok=1;
                return 0;
            }
        }
    if(ok==0)
        if(et<w)out<<"-1";
        else calculeaza();

    return 0;
}