Cod sursa(job #2770782)

Utilizator AlexSerban21Serban Alexandru AlexSerban21 Data 23 august 2021 11:04:00
Problema Energii Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <fstream>
using namespace std;
ifstream fin ("energii.in");
ofstream fout ("energii.out");
int n,g,i,j,maxc,ok,minc=10000001,a[5001],b[5001],f[10000001];
int main()
{
    fin>>n>>g;
    for (i=1; i<=n; i++)
        fin>>a[i]>>b[i];
    for (i=1; i<=n; i++)
    {
        for (j=maxc; j>0; j--)
        {
            if (f[j]!=0)
            {
                if (f[j+b[i]]<f[j]+a[i])
                {
                    f[j+b[i]]=f[j]+a[i];
                    maxc=j+b[i];
                }
            }
        }
        if (f[b[i]]<a[i])
        {
            f[b[i]]=a[i];
            maxc=b[i];
        }
    }
    for (i=1; i<=maxc; i++)
    {
        if (f[i]>=g)
        {
            fout<<i;
            return 0;
        }
    }
    fout<<-1;
    return 0;
}