Cod sursa(job #540784)

Utilizator thesilverhand13FII Florea Toma Eduard thesilverhand13 Data 24 februarie 2011 13:20:25
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include<fstream>

#define inf 700000
using namespace std;
long sol[1010][5010];
 long   eg[1010],cg[1010];
   int w,g2,i,j;

int main()
{
	ifstream f("energii.in");
	ofstream g("energii.out");

f>>g2;
f>>w;
for (i=1 ;i<=g2;i++)


 f>>eg[i]>>cg[i];

for( i=1;i<= w;i++) 
 sol[0][i]=inf;
for (i=1;i<= g2;i++) 
{
 for( j=1;j<= w;j++) 
 {
  if (j<eg[i])
  {
   if (sol[i-1][j]<cg[i]) 
	   sol[i][j]=sol[i-1][j];
   else
    sol[i][j]=cg[i];
  }
  else
   if (sol[i-1][j]<sol[i-1][j-eg[i]]+cg[i]) 
   sol[i][j]=sol[i-1][j];
   else
    sol[i][j]=sol[i-1][j-eg[i]]+cg[i];
 }
}

 if (sol[g2][w]==inf)  
	 g<<-1<<"\n";
 else
  g<<sol[g2][w]<<"\n";

return 0;
}