萌新刚学OI,WA on #7 求助
查看原帖
萌新刚学OI,WA on #7 求助
735763
_ChongYun_楼主2024/4/6 14:52
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n;
__int128 m=1,ans=0;
int a[114514],b[114514];
__int128 M[114514],t[114514];
int exgcd(__int128 a,__int128 b,int &x,int &y){
    if(!b){
        x=1; y=0;
        return a;
    }
    int qwq=exgcd(b,a%b,x,y);
    int z=x; x=y; y=z-y*(a/b);
    return qwq;
}
void write(__int128 x){
	if(!x) return ;
    write(x/10);
    putchar(x%10+'0');
    return ;
}
signed main(){
	cin>>n;
	for(int i=1;i<=n;i++) cin>>a[i];
	for(int i=1;i<=n;i++) cin>>b[i];
	for(int i=1;i<=n;i++) m*=b[i];
	for(int i=1;i<=n;i++){
		M[i]=m/b[i];
		int x,y;
		exgcd(M[i],b[i],x,y);
		ans+=a[i]%m*M[i]%m*(x<0?x+b[i]:x)%m;
	}
	write(ans%m);
	return 0;
}
2024/4/6 14:52
加载中...