题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2669
77 51 10 44 34 79
2 -3 sorry 7 -3
PS:
扩展欧几里德模板题;
附:扩展欧几里德讲解:http://blog.csdn.net/u012860063/article/details/39760003
代码如下:
#include <cstdio> #include <cstring> #include <cmath> typedef __int64 LL; LL exgcd(LL a,LL b,LL &x,LL &y) { if(b == 0) { x = 1; y = 0; return a; } else { LL r = exgcd(b,a%b,x,y); LL t = x; x = y; y = t-a/b*y; return r; } } int main() { LL a,b,x,y; while(scanf("%I64d%I64d",&a,&b)!=EOF) { LL d = exgcd(a,b,x,y); if(1%d)//不能整除 printf("sorry\n"); else { while(x<0) x+=b,y-=a; printf("%I64d %I64d\n",x,y); } } return 0; }
原文地址:http://blog.csdn.net/u012860063/article/details/39759941