题目链接:http://codeforces.com/problemset/problem/7/C
AX+BY=C已知 A B C 求 X Y;
#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 "); continue; } extend_Euclid(a,b,x,y); printf("%lld %lld ",x*c,y*c); } return 0; }