无法编译求助....(悬赏关注)
查看原帖
无法编译求助....(悬赏关注)
361141
_JF_殉情楼主2022/5/31 14:16
#include<bits/stdc++.h>
using namespace std;
const int N =1e8+10;
#define int __int128
int T,a1,a2,n1,n2;
int a[N],n[N];
inline int read()
{
    register int x=0,f=0;
    register char t=getchar();
    while(t<'0'||t>'9')f^=(t=='-'),t=getchar();
    while(t>='0'&&t<='9')x=(x<<3)+(x<<1)+(t^48),t=getchar();
    return f?-x:x;
}
inline void out(int x){
  	if(x<0)putchar('-'),x=-x;
  	if(x>9)out(x/10);
  	putchar(x%10+48);
}
void Exgcd(int a,int b,int &GCD,int &x,int &y)
{
	if(b==0)
	{
    	y=(x=1)-1;
    	GCD=a;
	}
	else
	{
    	Exgcd(b,a%b,GCD,y,x);
    	y-=x/b*a;
	}
}

int EXCRT()
{
	a1=a[0];
	n1=n[0];
	for(int  i=1;i<T;i++)
	{
		a2=a[i];
		n2=n[i];
		int g,x,y,C=a2-a1;
		Exgcd(n1,n2,g,x,y);
		if(C%g==0)
		{
			x=((x*C/g)%(n2/g)+(n2/g))%(n2/g);
			a1=a1+x*n1;
			n1=(n1*n2)/g;
		}
	}
	return a1;
} 

signed main()
{
	T=read();
	for(int i=0;i<T;i++)
		n[i]=read(),a[i]=read();
	int k=EXCRT();
	out(k);
	return 0;	
}
2022/5/31 14:16
加载中...