Romantic
题目链接:HDU - 2669题意:求出a*x+b*y=1的一个x为最小的非负数的解;无解输出sorry;
#include <iostream> #include <algorithm> #include <stdio.h> using namespace std; long long exgcd(long long a, long long b, long long &x, long long &y){ if(b==0){ x=1, y=0; return a; } long long r=exgcd(b, a%b, x, y); long long t=x; x=y; y=t-a/b*y; return r; } int main(){ long long a, b, x, y; while(cin >> a >> b){ if(exgcd(a, b, x, y)==1){ if(x<0) x+=b, y-=a;//x是非负数, 最小; cout << x << ' ' << y << endl; } else cout << "sorry\n"; } return 0; }