ax+by = gcd(a, b)
exgcd解出来的那么一组x,y并不是我们所求的最小正整数解,它甚至可能是一个负的不知道哪里去的一个数。它们仅仅是一组解。而关于通解,假设我们解出一组解x0,y0,方程是ax+by=c,通解就是x=x0+k*b/gcd(a,b),k是任意的一个整数,t就是后面那一坨,就是b/gcd(a,b)。
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define N 10006
#define fi first
#define se second
#define pb push_back
int x,y;
int exgcd(int a, int b){
if(b == 0)
{
x = 1;
y = 0;
return a;
}
int res = exgcd(b, a % b);
int tmp = x;
x = y;
y = tmp - a / b * y;
return res;
}
int main(){
int a, b;
cin>>a>>b;
exgcd(a, b);
cout<<x<<" "<<y;
return 0;
}