Cod sursa(job #1503128)

Utilizator Julian.FMI Caluian Iulian Julian. Data 15 octombrie 2015 16:42:25
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <iostream>
#include <fstream>
#define maxim 0x7fff
#define emax 6002
#define nmax 1002
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int n,w,i,e[nmax],p[nmax];
int ve[emax],no[emax];

int main()
{int n,w,i,en;
    fin>>n;
    fin>>w;
    for(i=1;i<=n;i++)
        {fin>>e[i]>>p[i];}

    for(i=1;i<=emax;i++)
         ve[i]=maxim;
    ve[0]=0;

    for(i=1;i<=n;i++)
    {

    for(en=1;en<=emax;en++)
        {no[en]=ve[en];

        if(e[i] <= en && ve[en-e[i]]!=maxim)
            if(no[en] > ve[en-e[i]] + p[i])
                no[en]=ve[en-e[i]] + p[i];

        }

    for(en=0;en<=emax;en++)
        ve[en]=no[en];
    }

int minim = maxim;
    for(i=w;i<=emax;i++)
        if(minim>ve[i])minim=ve[i];
    if(minim==maxim)  fout<<-1;
    else fout<<minim;
}