http://codeforces.com/problemset/problem/7/C
思路:先将A,B,C除以gcd(a,b),此时保证A,B已经互素,调用模板求出的特解x,y 只需乘上c即为答案。
#include <iostream>
#include <string.h>
#include <algorithm>
#include <stdio.h>
using namespace std;
typedef long long LL;
LL gcd(LL a,LL b)
{
return b ? gcd(b,a%b):a;
}
void extend_Euclid(LL a,LL b,LL &x,LL & y)
{
if(b == 0)
{
x = 1;
y = 0;
return;
}
extend_Euclid(b,a%b,x,y);
LL tmp = x;
x = y;
y = tmp - (a / b) * y;
}
int main()
{
LL a,b,c,x,y;;
while(cin>>a>>b>>c)
{
c=-c;
LL g=gcd(a,b);
if(c%g)
{
printf("-1\n");
continue;
}
a/=g;
b/=g;
c/=g;
extend_Euclid(a,b,x,y);
printf("%lld %lld\n",x*c,y*c);
}
return 0;
}