Cod sursa(job #464759)

Utilizator cosmyoPaunel Cosmin cosmyo Data 21 iunie 2010 17:28:11
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include<fstream.h>
long s[10005],eg[1005],cg[1005],g,w;
void cit()
{ifstream fin("energii.in");
  fin>>g>>w;
  long i;
   for(i=1;i<=g;++i)
	   fin>>eg[i]>>cg[i];
 fin.close();
}
void solve()
{s[0]=1;
 long i,j;
 for(i=1;i<=g;++i)
 { for(j=10000;j>=0;--j)
	 if(s[j]&&j+eg[i]<=10000)
	 {if(s[j+eg[i]]==0)
		 s[j+eg[i]]=s[j]+cg[i];
	   else
		   if(s[j+eg[i]]>s[j]+cg[i])
			   s[j+eg[i]]=s[j]+cg[i];
	 }
 }
}
void afis()
{ofstream fout("energii.out");
  long i,sw=0,p;
  p=w;
   for(i=w;i<=10000;++i)
	   if(s[i])
	   {p=i; 
	    sw=1;
	    break;
	   }
  for(i=p+1;i<=10000;++i)
    if(s[i]&&s[i]<s[p])
     p=i;		
  if(sw==0)
	  fout<<-1;
  else
	  fout<<s[p]-1;
 fout.close();
}
int main()
{cit();
 solve();
 afis();
 return 0;
}