Cod sursa(job #2363076)

Utilizator Alex_AeleneiAlex Aelenei Ioan Alex_Aelenei Data 3 martie 2019 12:43:13
Problema Energii Scor 85
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 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<=g)
                    aux=max(aux,j+x);
                mx=max(mx,j+x);
            }
        l=aux;
    }
    x=mx;
    while(x>=g)
    {
        if(v[x])
            ans=min(ans,v[x]);
        --x;
    }
    printf("%d",ans);
    return 0;
}