Cod sursa(job #1347848)

Utilizator razvan_milicinMilicin Razvan razvan_milicin Data 19 februarie 2015 12:05:09
Problema Energii Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <fstream>
using namespace std;
ifstream in ("energii.in");
ofstream out ("energii.out");
int main ()
{
  int g,w,e,c,i,j,cmax=0,v[5005],semafor=0;
  in>>g>>w;
  for (j=1;j<5005;j++)
    v[j]=-1;
  v[0]=0;
  for (i=1;i<=g;i++)
  {
    in>>e>>c;
    for (j=cmax;j>=0;j--)
      {
        if (v[j]!=-1&&j+c<=5001&&v[j+c]<v[j]+e)
        {
          v[j+c]=v[j]+e;
          if (j+c>cmax)
            cmax=j+c;
        }
        if (v[j]!=-1&&j+c>5001&&v[5001]<v[j]+e)
        {
          v[5001]=v[j]+e;
          if (5001>cmax)
            cmax=5001;
        }
      }
  }
  for (j=1;j<=cmax;j++)
    if (v[j]>=w)
    {
      out <<j;
      semafor=1;
      break;
    }
  if (semafor==0)
    out <<-1;
  return 0;
}