Code:
#include<bits/stdc++.h>
using namespace std;
int gcd(int a, int b) //欧几里得求最大公约数
{
if(b == 0)
return a;
else
return gcd(b, a%b);
}
void ex_gcd(int a, int b, int& d, int& x, int& y) //扩展欧几里得求贝祖等式
{
if(!b)
{
d = a; x = 1; y = 0;
}
else
{
ex_gcd(b, a%b, d, y, x);
y -= x*(a/b);
}
}
int main()
{
int a, b;
cin >> a >> b;
cout << gcd(a, b) << endl;
int x, y, d;
ex_gcd(a, b, d, x, y);
cout << x << " " << y << endl;
return 0;
}