Cod sursa(job #111166)

Utilizator hazegirlCatalina Predoi hazegirl Data 28 noiembrie 2007 19:36:23
Problema Aliens Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include<fstream.h>
#include<math.h>
long int n, x[51],y[51],max=0;
unsigned long long int s=1,j=1;

void back(long int k)
{long int d=0,t=0,c=0;
for(long int i=k;i<=n;i++)
      { while(s%2!=0 && j%2==0)	{s/=2;d++;j/=2;}
	while(s%3!=0 && j%3==0)	{s/=3;t++;j/=3;}
	while(s%5!=0 && j%5==0)	{s/=5;c++;j/=5;}
      if(x[i]*s>0 && y[i]*j>0)
      {s*=x[i];
	j*=y[i];
	if(s%j==0 && max<(s/j)) max=s/j;
	back(i+1);
	s/=x[i];
	j/=y[i];}
	s*=pow(2,d)*pow(3,t)*pow(5,c);
	j*=pow(2,d)*pow(3,t)*pow(5,c);
      }}

int main()
{long int i;
ifstream f("aliens.in");
 ofstream g("aliens.out");
f>>n;
for(i=1;i<=n;i++)
	f>>x[i]>>y[i];
back(1);
g<<max<<'\n';
f.close();
g.close();
return 0;
}