POJ 2142

题目大意

暂无

题目解法

暂无

RTFC

#include <cstdio>
inline int abs(int x) { return x >= 0 ? x : -x; }
void exgcd(int a, int b, int &d, int &x, int &y) { !b ? (x = 1, y = 0, d = a) : (exgcd(b, a % b, d, y, x), y -= x * (a / b)); }
int main()
{
    int a, b, c, x, y, g, u1, v1, u2, v2;
    while (~scanf("%d%d%d", &a, &b, &c) && a + b + c)
    {
        exgcd(a, b, g, x, y);
        a /= g, b /= g, c /= g;
        u1 = (x % b * c % b + b) % b;
        v1 = abs((c - u1 * a) / b);
        v2 = (y % a * c % a + a) % a;
        u2 = abs((c - v2 * b) / a);
        if (u1 + v1 > u2 + v2 || (u1 + v1 == u2 + v2 && a * u1 + b * v1 > a * u2 + b * v2)) u1 = u2, v1 = v2;
        printf("%d %d\n", u1, v1);
    }
    return 0;
}