Cod sursa(job #1753643)

Utilizator xSliveSergiu xSlive Data 6 septembrie 2016 20:22:52
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <fstream.h>
#include <iostream.h>
#define N 20001
#define M 1001
//              verific evaluatorul cu un cod de 10 pct a altei persoane
int main()
{
   int G,W,E[M],C[M],v[N]={0},c[N]={0},i,j,l,ult;
   v[0]=-1;
   ifstream f("energii.in");
   ofstream g("energii.out");
   f>>G>>W;
   for(i=1;i<=G;i++)
   {
       f>>E[i];
       f>>C[i];
   }
   f.close();
   ult=0;
   for(i=1;i<=G;i++)
     for(j=ult;j>=0;j--)
     {
      if(v[j+E[i]]!=0 && c[j+E[i]]>C[i])
         c[j+E[i]]=C[i];
      if(v[j]!=0 && v[j+E[i]]==0)
      {
          v[j+E[i]]=E[i];
          c[j+E[i]]=c[j]+C[i];
          if(j+E[i]>ult)
        ult=j+E[i];
      }
      if(ult>=W)
       if(c[W])
       { g<<c[W]; return 0;}
       else
       {
          l=W;
          while(!c[l])
           l++;
          g<<c[l];
          return 0;
       }
     }
   g<<-1;
   g.close();
   return 0;
}