最后输出了个-1,即判断出了个无解,实在找不出错误了
#include<iostream>
#include<cstdio>
#include<algorithm>
#define ll long long
using namespace std;
ll mod[100001],lst[100001],n;
inline ll exgcd(ll a,ll b,ll &x,ll &y){
if(b==0){
x=1,y=0;return a;
}
ll res=exgcd(b,a%b,y,x);
y-=(a/b)*x;
return res;
}
inline ll excrt(){
ll A=mod[1],R=lst[1],x,y;
for(int i=2;i<=n;i++){
ll gcd=exgcd(A,mod[i],x,y);
if((lst[i]-R)%gcd) return -1;
x=(lst[i]-R)/gcd*x;x=(x%(mod[i]/gcd)+(mod[i]/gcd))%(mod[i]/gcd);
R=R+A*x;
A=A/gcd*mod[i];R%=A;
}
return R;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>mod[i]>>lst[i];
}
cout<<excrt();
return 0;
}