1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| #include<iostream> typedef long long ll; using namespace std; ll yu[120],chu[120]; ll exgcd(ll a,ll b,ll &x,ll &y) { if(b==0) { x=1,y=0; return a; } else { ll res=exgcd(b,a%b,y,x); y-=x*(a/b); return res; } } ll china(int l) { ll d,x,y,m,n=1,ret=0; for(int i=0;i<l;i++) n*=chu[i]; for(int i=0;i<l;i++) { m=n/chu[i]; d=exgcd(chu[i],m,x,y); ret=(ret+y*m*yu[i])%n; } return (n+ret%n)%n; } int main() { int N; cin>>N; for(int i=0;i<N;i++) cin>>chu[i]>>yu[i]; cout<<china(N)<<endl; return 0; }
|