求助!!!84pts
查看原帖
求助!!!84pts
544458
WAI_kycm楼主2023/6/29 19:36
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int maxn = 1e7 + 5;
int n, a1, a2, m1, m2, a12, mod;
int exgcd(int a, int b, int &x, int &y){
	int d = a;
	if(b == 0) x = 1, y = 0;
	else{
		d = exgcd(b, a % b, x, y);
		int x1 = x, y1 = y;
		x = y1;
		y = x1 - a / b * y1;
	}
	return d;
}
void ex(){
	int x, y, d = exgcd(m1, m2, x, y);
	int c = a2 - a1;
	if(c % d) {cout<<"-1"<<endl; exit(0);}
	x = ((c / d * x) % (m2 / d) + m2 / d) % (m2 / d);
	mod = m2 / d * m1; a12 = ((a1 + m1 * x) % mod + mod) % mod;
	a1 = a12; m1 = mod;
}
void Solve(){
	cin>>n>>m1>>a1;
	for(int i = 2; i <= n; ++i){
		cin>>m2>>a2;
		ex();
	}
	cout<<a12 % mod<<endl;
}
signed main(){
	Solve();
	return 0;
}
2023/6/29 19:36
加载中...