60pts求改
查看原帖
60pts求改
670355
Nuclear_Fish_cyq楼主2022/8/20 09:43
#include <bits/stdc++.h>
using namespace std;
long long a, b, m, n, l, x, y;
void exgcd(long long a, long long b){
	if(b == 0){
		x = 1;
		y = 0;
		return;
	}
	exgcd(b, a % b);
	long long tx = x;
	x = y;
	y = tx - a / b * y;
}
long long gcd(long long a, long long b){
	return b == 0 ? a : gcd(b, a % b);
}
int main(){
	cin >> a >> b >> m >> n >> l;
	long long t1 = a - b, t2 = m - n;
	if(t1 < 0){
		t2 *= -1; 
	}
	long long g = gcd(l, t2);
	exgcd(t2, l);
	long long mod = abs(l / g);
	if(t1 % g != 0){
		cout << "Impossible" << endl;
	}
	else{
		cout << (((x * (t1 / g)) % mod) + mod) % mod;
	}
	return 0;
}
2022/8/20 09:43
加载中...