题目链接: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;
}
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://www.cnblogs.com/llguanli/p/6881458.html