@[gods](/user/326126) 最后一个点要用龟速乘否则会爆 $longlong$
```cpp
#include<bits/stdc++.h>
using namespace std;
long long a[250];
long long b[250];
long long x;
long long n;
long long y;
long long ksc(long long x,long long y,long long mod){
if(y==0) return 0;
long long z=ksc(x,y/2,mod) % mod;
z=(z+z);
if(y%2==1) z=(z+x) % mod;
return z%mod;
}
void dd(long long a,long long b){
if(b==0){
x=1;y=0;
}else{
dd(b,a%b);
long long z=x;x=y;y=z-a/b*y;
}
}
long long d(long long a,long long b){
dd(a,b);
return (x%b+b)%b;
}
long long f(){
long long ml=1,ans=0;
for(int i=1;i<=n;i++){
ml*=b[i];
}
for(int i=1;i<=n;i++){
ans+=ksc(ksc(d(ml/b[i],b[i]),a[i],ml),(ml/b[i]),ml);
ans%=ml;
}
return (ans%ml+ml)%ml;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=n;i++){
cin>>b[i];
a[i]=(a[i]%b[i]+b[i])%b[i];
}
cout<<f();
return 0;
}
```
by phmaprostrate @ 2021-09-06 08:15:22
@[gods](/user/326126) 你 `long long` 全部换成 `__int128` 就行了
by Eason_AC @ 2021-09-07 11:03:20