Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <bits/stdc++.h>using namespace std;typedef long long ll;ll a[1005],m[1005];void ex_gcd(ll a,ll b,ll d,ll& x,ll& y){if (!b) {d=a;x=1;y=0;}else {ex_gcd(b,a%b,d,y,x);y-=x*(a/b);}}ll China(int n,ll* a,ll* m){ll M=m[0],R=a[0],d,c,k1,k2;for (int i=1;i<n;i++){d=__gcd(M,m[i]);c=a[i]-R;if (c%d) return -1;ex_gcd(M/d,m[i]/d,c,k1,k2);k1=(c/d*k1)%(m[i]/d);R=R+k1*M;M=M/d*m[i];R%=M;}return (R+M)%M;}int main(){int n;scanf("%d",&n);for (int i=0;i<n;i++) cin>>m[i]>>a[i];cout<<China(n,a,m)<<endl;