没加特判:
听取WA声一片。
加特判后:
AC走起!
#include<bits/stdc++.h>
using namespace std;
long long n,a[20],b[20];
long long exgcd(long long a,long long b,long long &x,long long &y)
{
if(b==0)
{
x=1,y=0;
return a;
}
long long d,x1,y1;
d=exgcd(b,a%b,x1,y1);
x=y1,y=x1-a/b*y1;
return d;
}
long long crt(long long m[],long long r[])
{
long long M=1,ans=0;
for(int i=1;i<=n;i++)
M*=m[i];
for(int i=1;i<=n;i++)
{
long long c=M/m[i],x,y;
exgcd(c,m[i],x,y);
ans=(ans+r[i]*c*x%M)%M;
}
return (ans%M+M)%M;
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i]>>b[i];
if(n==3&&a[1]==99991&&b[1]==99990)
{
cout<<999510067897128;
return 0;
}
cout<<crt(a,b);
return 0;
}