为什么__int128报错
查看原帖
为什么__int128报错
1419569
Z_kazuha楼主2024/10/12 11:28
#include <bits/stdc++.h>
using namespace std;
#define int __int 128
const int N=1e5+5;
int n;
struct node{
	int b,a;
}ans,s[N];
int read() {long long t; cin>>t; return t;}
void exgcd(int a,int b,int &x,int &y,int &g)
{
    if(!b) {x=1,y=0,g=a;return ;}
    int x0,y0;
    exgcd(b,a%b,x0,y0,g);
    x=y0,y=x0-(a/b)*y0; 
}
node excrt(node fi,node se)
{
    int a1=fi.a,a2=se.a,b1=fi.b,b2=se.b,q1,q2,g,c,x,lcm;
    exgcd(a1,a2,q1,q2,g);
    assert((b2-b1)%g==0);
    c=(b2-b1)/g;
    lcm=a1/g*a2;
    x=(q1*c*a1+b1)%lcm;
    if(x<0) x+=lcm;
    return (node){x,lcm};
}
signed main(){
	n=read();
	for(int i=1;i<=n;i++){
		s[i].a=read();
		s[i].b=read();
	}
	if(n==1)cout<<(long long)s[1].b<<endl,exit(0);
	ans=excrt(s[1],s[2]);
	for(int i=3;i<=n;i++){
		ans=excrt(ans,s[i]);
	}
	cout<<(long long)ans.b;
	return 0;
}
2024/10/12 11:28
加载中...