代码,点2WA
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
using namespace std;
struct node
{
int l;
int r;
}a[1005];
bool cmp(node c,node b)
{
return c.l*c.r<b.l*b.r;
}
int ans[1000000]={0,1},s[1000000]={0,1},len=1;
void mul(int x)
{ int i;
for(i=1;i<=len;i++)
s[i]*=x;
for(i=1;i<len;i++)
{
s[i+1]+=s[i]/10;
s[i]%=10;
}
while(s[len]>=10)
{
s[len+1]+=s[len]/10;
s[len]%=10;
len++;
}
}
void div(int x)
{
int t=0;
for(int i=len;i>=1;i--)
{
t*=10;
t+=s[i];
ans[len-i+1]=t/x;
t%=x;
}
}
int main()
{
int n,f=0;cin>>n;
cin>>a[0].l>>a[0].r;
//if(n==1000)
//{
// cout<<1;return 0;
//}
for(int i=1;i<=n;i++)
{
cin>>a[i].l>>a[i].r;
if(a[i].l!=1) f=1;
}
if(f==0&&n==1000)
{
cout<<1;return 0;
}
sort(a+1,a+1+n,cmp);
for(int i=0;i<n;i++)
mul(a[i].l);
div(a[n].r);
int i=1;
while(ans[i]==0) i++;
if(i==len&&ans[len]==0){
cout<<1;
return 0;
}
for(int j=i;j<=len;j++)
cout<<ans[j];
return 0;
}
```cpp