Cod sursa(job #1125741)

Utilizator proflaurianPanaete Adrian proflaurian Data 26 februarie 2014 19:16:45
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<stdio.h>
#define oo 1<<30
#define MIN(x,y) x<y?x:y;
void read(),solve();
int N,G,c[5005],i,E,C,j,S=oo;
int main()
{
    read();
    solve();
    return 0;
}

void read()
{     freopen("energii.in","r",stdin);
      freopen("energii.out","w",stdout);
      scanf("%d%d",&N,&G);

      for(i=1;i<G;i++) c[i]=oo;
}


void solve()
{
    for(i=1;i<=N;i++)
    {
        scanf("%d%d",&E,&C);
        if(E>=G)
        {

            if(C<S)
                S=C;
            continue;
        }
        for(j=G-E;j<G;j++)S=MIN(S,c[j]+C);
        for(j=G;j>=E;j--)c[j]=MIN(c[j],c[j-E]+C);
    }
    S==oo?printf("-1\n"):printf("%d\n",S);
}