Cod sursa(job #152325)

Utilizator Snavenportnespecificat Snavenport Data 9 martie 2008 13:00:54
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <fstream.h>

#define inf  2000000000 

ifstream f("energii.in");
ofstream h("energii.out");

int g,c[1002],e[1002],w;
long sol[100000];

void citire()
{
     int i;
     f>>g>>w;
     for (i=1;i<=g;i++)
       f>>e[i]>>c[i];
}

long rez()
{
     int i,j,pozmax=0;
     for (i=1;i<=99999;i++)
       sol[i]=inf;
     sol[0]=0;
     for (i=1;i<=g;i++)
       for (j=w;j>=0;j--)
       {
          if (sol[j]+c[i]<sol[e[i]+j])
             sol[e[i]+j]=c[i]+sol[j];
          if (e[i]+j >pozmax)
            pozmax=e[i]+j;      
       }
     int min=inf;
     for (i=w;i<=pozmax;i++)
       if (sol[i]<min)
         min=sol[i];
     if (min==inf)
           return -1;
     else
           return min;
               
}

int main()
{
    citire();
    h<<rez();
    /*for (i=0;i<=20;i++)
      h<<sol[i]<<" ";*/
}