分明$excrt$就過了。
為什麼還要仔細讀題呢?
$qwq$
反正我沒讀題然後被卡$long \ long +$輸出格式錯$……$總共$WA$了四次
怕不是要退役……
上代碼:
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
long long a[100010],r[100010];
int n;
long long exgcd(long long a,long long b,long long &x,long long &y)
{
if(b==0) return x=1,y=0,a;
long long tmp=exgcd(b,a%b,y,x);
y-=a/b*x;
return tmp;
}
long long slove()
{
long long M=a[1],R=r[1],x,y,d;
for(int i=2;i<=n;i++)
{
d=exgcd(M,a[i],x,y);
if((R-r[i])%d!=0) return -1;
x=(R-r[i])/d*x%a[i];
R-=x*M;
M=M/d*a[i];
R%=M;
}
return (R%M+M)%M;
}
int main()
{
while(~scanf("%d",&n))
{
for(int i=1;i<=n;i++)
scanf("%lld%lld",&a[i],&r[i]);
printf("%lld\n",slove());
}
return 0;
}