最后一个点为什么WA?
查看原帖
最后一个点为什么WA?
873417
Istruggle楼主2024/3/31 22:08
#include<bits/stdc++.h>
#define int long long
using namespace std;
int a[25],m[25],n,Mn=1,M[25],t[25];
void exgcd(int A,int B,int &x,int &y){
	if(A%B==0){
		x=0; y=1;
	}
	else{
		exgcd(B,A%B,y,x);
		y-=A/B*x;
	}
}
int findie(int A,int p){
	int x=0,y=0;
	exgcd(A,p,x,y);
	return (x%p+p)%p;
}
signed main(){
	scanf("%lld",&n);
	for(int i = 1;i<=n;i++) scanf("%lld",&a[i]); 
	for(int i = 1;i<=n;i++){
		scanf("%lld",&m[i]); Mn*=m[i];
	}
	for(int i =1;i<=n;i++){
		M[i]=Mn/m[i];
		t[i]=findie(M[i]%m[i],m[i]);
	}
	int ans=0;
	for(int i = 1;i<=n;i++)
	ans+=(a[i]*M[i]*t[i])%Mn,ans%=Mn;
	printf("%lld",ans);
}
2024/3/31 22:08
加载中...