晕死,原来HDU上面是不支持long long的,诶,,,郁闷死了,以后还是用_int64吧.
真的不知道该肿么办了, 应该是_int64 都能用吧?
这是个很裸的扩展gcd不想说了呵呵
贴出代码:
/*
*如此赤裸的扩展gcd
*我都不好意思了
*/
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <string>
using namespace std;
int extgcd(int a, long long b, int &x, int &y)
{
if (b == 0)
{
x = 1;
y = 0;
return a;
}
int d = extgcd(b, a % b, x , y);
int t = x;
x = y;
y = t - a / b * y;
return d;
}
int main()
{
int a, b;
int x, y;
while (scanf("%d%d", &a, &b) != EOF)
{
int gcd = extgcd(a, b, x, y);
if (gcd == 1)
{
if (x > 0)
{
printf("%d %d\n", x, y);
}
else
{
while (x < 0)
{
x = x + b; //其实应该是 x = x / gcd + b / gcd * t;
y = y - a; //其实应该是 y = y / gcd + b / gcd * t;
}
printf("%d %d\n", x, y);
}
}
else
{
printf("sorry\n");
}
}
// system("pause");
return 0;
}