Cod sursa(job #2363147)

Utilizator Alex_AeleneiAlex Aelenei Ioan Alex_Aelenei Data 3 martie 2019 12:58:17
Problema Energii Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <cstdio>
#include <iostream>

using namespace std;
const int INF=10000;
int v[25000];
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=INF;
    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]=INF;
                v[j+x]=min(v[j+x],v[j]+y);
                if(j+x<=2*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==INF)
        printf("-1");
    else
        printf("%d",ans);
    return 0;
}