HDU 2669 Romantic
超水扩展欧几里得
1 #include <cstdio> 2 using namespace std; 3 4 void exgcd(int a,int b,int & d,int & x,int & y){ 5 if (b==0) {x=1;y=0;d=a;return;} 6 exgcd(b,a%b,d,y,x); 7 y-=x*(a/b); 8 } 9 10 int main(){ 11 12 int a,b,x,y,d; 13 while(scanf("%d%d",&a,&b)==2){ 14 exgcd(a,b,d,x,y); 15 if (d==1) { 16 while(x<0){ 17 x=x+b;y=y-a; 18 } 19 printf("%d %d\n",x,y); 20 } 21 else printf("sorry\n"); 22 } 23 }