没对的都是tle
寄录
#include<bits/stdc++.h>
using namespace std;
int n;
long long mm=1,M[100005],ans=0,a[100005],b[100005];
long long gsc(long long x,long long y){
long long d=0;
while(y){
if(y&1) d=(x+d)%mm;
x=(x+x)%mm;
y>>=1;
}
return d;
}
void exgcd(long long a,long long b,long long &x,long long &y) {
if(!b) {
x=1,y=0;
return;
}
exgcd(b,a%b,x,y);
long long z=x;
x=y,y=z-y*(a/b);
}
int main() {
scanf("%d",&n);
for(int i=1; i<=n; i++) {
scanf("%lld%lld",&a[i],&b[i]);
mm*=a[i];
}
for(int i=1; i<=n; i++) {
M[i]=mm/a[i];
long long t=0,k=0;
exgcd(M[i],a[i],t,k);
ans=(ans+gsc(M[i]*b[i]*t))%mm;
}
while(ans<=0) ans+=mm;
printf("%lld",ans);
return 0;
}