Cod sursa(job #925638)

Utilizator Vally77FMI Calinescu Valentin Gelu Vally77 Data 24 martie 2013 17:23:49
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream ka("energii.in");
ofstream ki("energii.out");
int g,w,k,sol[5001];
bool gasit=false;
struct generator
{
    int p,c;
}a[1001];
int main()
{
    ka>>g>>w;
    for(int i=1;i<=g;i++)
    {
        ka>>a[++k].p;
        ka>>a[k].c;
        if(sol[a[k].p]==0||sol[a[k].p]>a[k].c)
        {
            sol[a[k].p]=a[k].c;
        }
    }
    for(int i=1;i<=5001;i++)
    {
        for(int j=1;j<=g;j++)
        {
            if((i>a[j].p&&sol[i]==0&&sol[i-a[j].p]!=0)||(i>a[j].p&&sol[i-a[j].p]!=0&&sol[i-a[j].p]+a[j].c<sol[i]))
            sol[i]=sol[i-a[j].p]+a[j].c;
        }
        if(i>=w&&sol[i]!=0)
        {
            ki<<sol[i];
            gasit=true;
            break;
        }
    }
    if(!gasit)
    ki<<"-1";
}