Cod sursa(job #1771387)

Utilizator adina0822Ciubotaru Adina-Maria adina0822 Data 5 octombrie 2016 16:22:53
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
using namespace std;
#include <fstream>
#include <algorithm>
#define GMAX 1005
#define WMAX 5005
#define inf 10000001

FILE *f=fopen ("energii.in","r");
ofstream g ("energii.out");

int G,W;
int E[GMAX],C[GMAX];
int D[2][WMAX];


int main()
{
   int i,l=0,cw;

   fscanf(f,"%d%d",&G,&W);

   for(i=1; i<=G; i++)
    fscanf(f,"%d%d", &E[i],&C[i]);


    for(cw=1; cw<=W; cw++)
    D[0][cw]=D[1][cw]=inf;

   for(i=1; i<=G; i++, l=1-l)
   {
       for(cw=1; cw<=W; cw++)
       {
       D[1-l][cw]=D[l][cw];
       if(E[i]<=cw)
        D[1-l][cw]=min(D[1-l][cw],D[l][cw-E[i]]+C[i]);

       }
       if(E[i]>W) D[1-l][W]=min(D[1-l][W],C[i]);
   }

   if(D[l][W]==inf) g<<-1;
   else g<<D[l][W];

   return 0;
}