Cod sursa(job #1149826)

Utilizator laurentiudLaurentiu Diaconu laurentiud Data 22 martie 2014 12:05:44
Problema Energii Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <iostream>
#include <fstream>
using namespace std;
#define beat_this 1000000000
ifstream in("energii.in");
ofstream out("energii.out");
int nrG,needed_energy;
int energies[1005],weights[1005];
int first[5005],second[5005];
void citire()
{
    in>>nrG>>needed_energy;
    int i;
    for(i=1;i<=nrG;++i)
        in>>energies[i]>>weights[i];
}
void lets_see()
{
    int i,j;
    for(i=1;i<=needed_energy;++i)
        first[i]=beat_this;
    for(i=1;i<=nrG;++i)
        {
            for(j=1;j<=needed_energy;++j)
            {
                if(energies[i]>=j)
                    second[j]=min(first[j],weights[i]);
                        else second[j]=min(first[j], first[j-energies[i]] + weights[i]);
            }
            for(j=1;j<=needed_energy;j++)
                first[j]=second[j];
        }
    if(second[j]==beat_this) out<<-1;
        else out<<second[needed_energy];
}
int main()
{
    citire();
    lets_see();
    return 0;
}