RT,貌似是求逆元是出的错
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,a[1000005],b[1000005],m[1000005],mul=1,ny[1000005],ans;
int inv(int x,int p){
if(x<=1ll)return x;
return((p-p/x)*inv(p%x,p)%p)%p;
}
signed main(){
scanf("%lld",&n);
for(int i=1;i<=n;i++)scanf("%lld%lld",&a[i],&b[i]),mul*=a[i];
for(int i=1;i<=n;i++){
m[i]=mul/a[i];
ny[i]=inv(m[i]%a[i],a[i]);
}
for(int i=1;i<=n;i++)ans=(ans+((b[i]*m[i])%mul*ny[i]))%mul;
printf("%lld\n",ans);
}