Romantic
The Sky is Sprite.
The Birds is Fly in the Sky.
The Wind is Wonderful.
Blew Throw the Trees
Trees are Shaking, Leaves are Falling.
Lovers Walk passing, and so are You.
................................Write in English class by yifenfei
Girls are clever and bright. In HDU every girl like math. Every girl like to solve math problem!
Now tell you two nonnegative integer a and b. Find the nonnegative integer X and integer Y to satisfy X*a + Y*b = 1. If no such answer print "sorry" instead.
Input
The input contains multiple test cases.
Each case two nonnegative integer a,b (0
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll ex_gcd(ll a,ll b,ll &x,ll &y){
if(b == 0){
x = 1;
y = 0;
return a;
}
int g = ex_gcd(b,a%b,y,x);
y -= a / b * x;
return g;
}
int main(){
ll a,b;
while(~scanf("%lld%lld",&a,&b)){
ll x,y;
ll g = ex_gcd(a,b,x,y);
if(1 % g != 0){
printf("sorry\n");
continue;
}
if(b < 0) b = -b;
x = x % b;
if(x < 0) x += b;
y = (1 - a * x) / b;
printf("%lld %lld\n",x,y);
}
return 0;
}
本文介绍了一种算法,用于解决形如X*a + Y*b = 1的整数方程,其中a和b是非负整数。通过扩展欧几里得算法找到满足条件的X和Y值。如果不存在解,则输出sorry。该算法适用于多个测试用例。
1万+

被折叠的 条评论
为什么被折叠?



