Cod sursa(job #2366018)

Utilizator Mada2003Madalina Scarlat Mada2003 Data 4 martie 2019 18:04:08
Problema Energii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream fin("energii.in");
ofstream fout("energii.out");
const int MOD = (1 << 30);
const int NMAX = 10002;
int G,W;
int g[1002],w[1002];
int c[10002];
int sumag,sumaw;
void Read()
{
    fin>>G>>W;
    for(int i=1;i<=G;++i)
    {
        fin>>w[i]>>g[i];
        sumaw+=w[i];
        sumag+=g[i];
    }
}
void Solve()
{
    if(W>sumaw){fout<<-1;return;}
    for(int i=1;i<NMAX;++i)c[i]=MOD;
    for(int i=1;i<=G;++i)
    {
        for(int j=NMAX-1-w[i];j>=0;--j)
            if(c[j+w[i]]>c[j]+g[i])
            c[j+w[i]]=c[j]+g[i];
    }
    int cost=MOD;
    for(int i=W;i<NMAX;++i)
    cost=min(cost,c[i]);
    fout<<cost;
}
int main()
{
    Read();
    Solve();
    return 0;