题目:
给定n对正整数ai,bi,对于每对数,求出一组xi,yi,使其满足ai∗xi+bi∗yi=gcd(ai,bi)。
输入格式
第一行包含整数n。
接下来n行,每行包含两个整数ai,bi。
输出格式
输出共n行,对于每组ai,bi,求出一组满足条件的xi,yi,每组结果占一行。
本题答案不唯一,输出任意满足条件的xi,yi均可。
数据范围:
1 ≤ n ≤ 10^5,
1 ≤ ai , bi ≤ 2 ∗10^9
输入样例:
2
4 6
8 18
输出样例:
-1 1
-2 1
#include <iostream>
#include <algorithm>
#define FAST ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
#define LL long long
using namespace std;
int exgcd(int a,int b,int &x,int &y)
{
if(!b)
{
x = 1,y = 0;
return a;
}
int d = exgcd(b,a % b,y,x);
y -= a / b * x;
return d;
}
int main(void)
{
FAST;
int T;
cin >> T;
while (T --)
{
int a,b;
cin >> a >> b;
int x,y;
exgcd(a,b,x,y);
cout << x << " " << y << endl;
}
return 0;
}
作者:氯
链接:https://www.acwing.com/activity/content/code/content/605931/
来源:AcWing
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。