Cod sursa(job #2364408)

Utilizator Alex_AeleneiAlex Aelenei Ioan Alex_Aelenei Data 4 martie 2019 08:10:28
Problema Energii Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <cstdio>
#include <iostream>

using namespace std;
const int NMAX=50000000;
int v[15005];
int main()
{
    freopen("energii.in","r",stdin);
    freopen("energii.out","w",stdout);
    int n,g,i,j,x,y,l=0,aux,mx=0,ans=NMAX;
    scanf("%d%d",&n,&g);
    for(i=1;i<=15000;++i)
        v[i]=NMAX;
    for(i=1;i<=n;++i)
    {
        scanf("%d%d",&x,&y);
        aux=l;
        for(j=l;j>=0;--j)
            if(v[j]||j==0)
            {
                v[j+x]=min(v[j+x],v[j]+y);
                if(j+x<=g)aux=max(aux,j+x);
                if(j+x>=g)ans=min(ans,v[j+x]);
                mx=max(mx,j+x);
            }
        l=aux;
    }
    if(ans==NMAX)
        printf("-1");
    else
        printf("%d",ans);
    return 0;
}