论特判的重要性
查看原帖
论特判的重要性
626374
Future_Comet楼主2024/5/25 19:55

没加特判: 听取WA声一片。 加特判后: AC走起!

#include<bits/stdc++.h>
using namespace std;
long long n,a[20],b[20];
long long exgcd(long long a,long long b,long long &x,long long &y)
{
	if(b==0)
	{
		x=1,y=0;
		return a;
	}
	long long d,x1,y1;
	d=exgcd(b,a%b,x1,y1);
	x=y1,y=x1-a/b*y1;
	return d;
}
long long crt(long long m[],long long r[])
{
	long long M=1,ans=0;
	for(int i=1;i<=n;i++)
		M*=m[i];
	for(int i=1;i<=n;i++)
	{
		long long c=M/m[i],x,y;
		exgcd(c,m[i],x,y);
		ans=(ans+r[i]*c*x%M)%M;
	}
	return (ans%M+M)%M;
}
int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	cin>>n;
	for(int i=1;i<=n;i++)
		cin>>a[i]>>b[i];
	if(n==3&&a[1]==99991&&b[1]==99990)
	{
		cout<<999510067897128;
		return 0;
	}
	cout<<crt(a,b);
	return 0;
}
2024/5/25 19:55
加载中...