90分 最后一个点WA了求助(关注为回报)
查看原帖
90分 最后一个点WA了求助(关注为回报)
326126
封禁用户楼主2021/8/20 10:24
#include<bits/stdc++.h>
using namespace std;
long long a[250];
long long b[250];
long long x;
long long n;
long long y;
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+=d(ml/b[i],b[i])%ml*a[i]%ml*((ml/b[i])%ml)%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;
} 
2021/8/20 10:24
加载中...