#include<bits/stdc++.h>usingnamespace std;voidexgcd(int a,int b,int&x,int&y){if(b ==0){
x =1;
y =0;}else{exgcd(b, a % b, x, y);int t = x;
x = y;
y = t - a / b * y;}}intmain(){int a, b, x, y;
cin >> a >> b;exgcd(a, b, x, y);
cout <<(x + b)% b;return0;}
青蛙的约会
#include<bits/stdc++.h>#defineLLlonglongusingnamespace std;
LL exgcd(LL a, LL b, LL &x, LL &y){if(b ==0){
x =1;
y =0;return a;}else{
LL gcd =exgcd(b, a % b, x, y);
LL t = x;
x = y;
y = t - a / b * y;return gcd;}}intmain(){
LL x, y, m, n, l;
cin >> x >> y >> m >> n >> l;
LL a = m - n, b = y - x;//ax = b (mod l)
LL gcd =exgcd(a, l, x, y);//ax + ly = b;if(b % gcd !=0){puts("Impossible");}else{
l =abs(l / gcd);
cout <<(b / gcd * x % l + l)% l;}return0;}/*
m * p + l * q = n * p - (x - y),整理得
(m - n) * p + l * q = (y - x),整理,替换字母后,得
ax + ly = b
通解为 x = x0 + k * (l / gcd)
*/