Cod sursa(job #2364401)

Utilizator Alex_AeleneiAlex Aelenei Ioan Alex_Aelenei Data 4 martie 2019 07:59:34
Problema Energii Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <cstdio>
#include <climits>
#include <iostream>

using namespace std;
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=INT_MAX;
    scanf("%d%d",&n,&g);
    for(i=1;i<=n;++i)
    {
        scanf("%d%d",&x,&y);
        aux=l;
        for(j=l;j>=0;--j)
            if(v[j]||j==0)
            {
                if(v[j+x]==0)
                    v[j+x]=INT_MAX;
                v[j+x]=min(v[j+x],v[j]+y);
                if(j+x<=g)
                    aux=max(aux,j+x);
                mx=max(mx,j+x);
            }
        l=aux;
    }
    for(i=mx;i>=g;--i)
        if(v[i])
            ans=min(ans,v[i]);
    if(ans==INT_MAX)
        printf("-1");
    else
        printf("%d",ans);
    return 0;
}