EXCRT过不了样例输出203求助。。。
查看原帖
EXCRT过不了样例输出203求助。。。
378706
MoyunAllgorithm楼主2023/7/29 16:23
#include <bits/stdc++.h>
#define int long long
using namespace std;
int N,B,A;
int Exgcd(int a,int b,int &x,int &y)
{
    if (b==0)
    {
        x=1,y=0;
        return a;
    }
    int d=Exgcd(b,a%b,y,x);
    y-=a/b*x;
    return d;
}
void Excrt(int b,int a)
{
	int x,y;
	int d=Exgcd(A,a,x,y);
	int p=a/d;
	int t=(__int128)x*(b-B)/d%(a/d);
	t=(t+a/d)%(a/d);
	int m=a/d*A;
	B=(((__int128)A*t+B)%m+m)%m;
	A=m;
	return;
}
signed main()
{
    scanf("%d",&N);
    int b,a;
    for(int i=1;i<=N;i++)
    {
    	scanf("%lld %lld",&b,&a);
    	if(i==1) B=b,A=a;
    	else Excrt(b,a);
    //	printf("%lld %lld\n",B,A);
	}
	printf("%lld\n",B%A);
    return 0;
}
2023/7/29 16:23
加载中...