萌新刚学 oi,求助中国剩余定理模板 QWQ
#include<bits/stdc++.h>
using namespace std;
__int128 n,x,y,k,ans,tmp=1,a[12],b[12];
inline int read(){
int x=0,f=1;char ch=getchar();
while (ch<'0'||ch>'9'){if (ch=='-') f=-1;ch=getchar();}
while (ch>='0'&&ch<='9'){x=x*10+ch-48;ch=getchar();}
return x*f;
}
void write(int x){
if(x<0){putchar('-');x=-x;}
if(x>=10) write(x/10);
putchar(x%10+'0');
return;
}
void exgcd(__int128 a,__int128 b){
if(!b){
x=1,y=0;
return;
}
exgcd(b,a%b);
k=x,x=y;
y=k-(a/b)*y;
}
int main(){
n=read();
for(int i=1;i<=n;i++) a[i]=read(),b[i]=read(),tmp*=a[i];
for(int i=1;i<=n;i++){
__int128 m=tmp/a[i];
exgcd(m,a[i]);
ans+=b[i]*x*m;
}
write(ans);
return 0;
}