评测记录
可能是高精的问题,但是调不出来
#include<bits/stdc++.h>
using namespace std;
int n;
string ans="0";
struct data
{
int l,r;
}a[10005];
bool cmp(data x,data y)
{
return x.l*x.r<y.l*y.r;
}
string mul(string x,int y)
{
int k=0;
string s;
for(int i=x.size()-1;i>=0;i--)
{
int t=x[i]-'0';
t*=y;
t+=k;
s=(char)((t%10)+'0')+s;
k=t/10;
}
if(k!=0)
s=(char)(k+'0')+s;
return s;
}
string div(string x,int y)
{
int k=0;
bool f=0;
string s;
for(int i=0;i<x.size();i++)
{
k=k*10+(x[i]-'0');
if(k/y>0)
f=1;
if(f)
s+=(char)(k/y+'0');
k%=y;
}
return s;
}
int main()
{
freopen("1.in","r",stdin);
scanf("%d%d%d",&n,&a[0].l,&a[0].r);
for(int i=1;i<=n;i++)
scanf("%d%d",&a[i].l,&a[i].r);
sort(a+1,a+n+1,cmp);
string p="1";
for(int i=0;i<=n;i++)
{
string t=div(p,a[i].r);
if((t.size()>ans.size())||(t.size()==ans.size()&&t>ans))
ans=t;
p=mul(p,a[i].l);
}
cout<<ans;
return 0;
}