Cod sursa(job #1323541)

Utilizator horiainfoTurcuman Horia horiainfo Data 21 ianuarie 2015 10:38:56
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <fstream>

using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int cmin=1001*10001,e,c,nrg,wmin,s1[5001],s2[5001];
void cons(int s1[],int s2[])
{
    for(int i=1;i<=wmin;i++)
        s2[i]=0;
    if(e>=wmin)
    {
        if(cmin>c) cmin=c;
    }
    else
        s2[e]=c;
    for(int i=1;i<=wmin;i++)
        if(s1[i]!=0)
        {
            if(i+e>=wmin)
            {
                if(s1[i]+c<cmin) cmin=s1[i]+c;
            }
            else
                if(s2[i+e]>s1[i]+c || s2[i+e]==0) s2[i+e]=s1[i]+c;
            if(s2[i]>s1[i] || s2[i]==0) s1[i]=s2[i];
        }
}
int main()
{
    fin>>nrg>>wmin;
    for(int i=1;i<=nrg;i++)
    {
        fin>>e>>c;
        if(i%2==1)
            cons(s2,s1);
        else
            cons(s1,s2);
    }
    fout<<cmin<<'\n';
    return 0;
}