100分UnAC求救
查看原帖
100分UnAC求救
1153793
xd244楼主2024/8/11 10:43
#include<iostream>
using namespace std;
long long n,a[20],b[20],x,y;
long long exgcd(long long a,long long b){
	if(b==0){
		x=1;y=0;
		return a;
	}
	long long d=exgcd(b,a%b);
	long long t=x;x=y;
	y=t-a/b*y;
	return d;
}long long crt(){
	long long s=1,ans=0;
	for(int c=1;c<=n;c++)s*=a[c];
	for(int c=1;c<=n;c++){
		long long m=s/a[c];
		x=y=0;
		exgcd(m,a[c]);
		long long m1=(x%a[c]+a[c])%a[c];
		ans+=m%s*m1%s*b[c]%s;
		ans%=s;
	}return (ans%s+s)%s;
}int main(){
	cin>>n;
	for(int c=1;c<=n;c++)cin>>a[c]>>b[c];
	cout<<crt();
}

#subtack1一直WA

2024/8/11 10:43
加载中...