#include <iostream>
#include <string>
#include <stack>
#include <vector>
#include <queue>
#include <deque>
#include <set>
#include <map>
#include <unordered_map>
#include <unordered_set>
#include <algorithm>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <numeric>
using namespace std;
#define ll long long
#define PII pair<int, int>
#define TUP tuple<int, int, int>
const int inf = 0x3f3f3f3f;
const int mod = 1e9 + 7;
const int N = 2e5 + 10;
int gcd(int n, int m, int& x, int& y) {
if (m == 0) {
x = 1, y = 0;
return n;
}
int d = gcd(m, n % m, y, x);
y -= n / m * x;
return d;
}
void solve() {
//换行是个好习惯
int n, m;
cin >> n >> m;
int x, y;
//if (n < m) swap(n, m);
gcd(n, m, x, y);
cout << x << " " << y << endl;
return;
}
int main() {
int t = 1;
scanf("%d", &t);
while (t--) {
solve();
}
return 0;
}
扩展欧几里得
最新推荐文章于 2024-06-02 14:55:04 发布