Pagini recente » Cod sursa (job #204736) | Cod sursa (job #3161256) | Cod sursa (job #1189247) | Cod sursa (job #277574) | Cod sursa (job #111166)
Cod sursa(job #111166)
#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;
}