【题目来源】:https://www.51nod.com
【题意】
中文题意不再解释。。
【思路】
模板打上去。。。
【代码】
#include <bits/stdc++.h>
#define MAXN 20
#define ll long long
using namespace std;
ll p[MAXN], m[MAXN];
int n;
void exgcd(ll a, ll b, ll& x, ll& y){ //exgcd求乘法取模运算的逆元
if(!b){
y=0, x=1;
return;
}else{
exgcd(b, a%b, x, y);
ll temp=x;
x=y;
y=temp-a/b*y;
}
}
ll crt(void){
ll M=1, ans=0;
for(int i=0; i<n; i++){
M*=m[i];
}
for(int i=0; i<n; i++){
ll mi=M/m[i], x, y;
exgcd(mi, m[i], x, y);
ans=(ans+p[i]*x*mi)%M;
}
if(ans<0){
ans+=M;
}
return ans;
}
int main(void){
scanf("%d", &n);
for(int i=0; i<n; i++){
scanf("%lld%lld", &m[i], &p[i]);
}
printf("%lld\n", crt());
return 0;
}