• 解题报告:codeforce 7C Line


    codeforce 7C

    C. Line

    time limit per test1 second
    memory limit per test256 megabytes

    A line on the plane is described by an equation Ax + By + C = 0. You are to find any point on this line, whose coordinates are integer numbers from  - 5·1018 to 5·1018 inclusive, or to find out that such points do not exist.

    Input

    The first line contains three integers A, B and C ( - 2·109 ≤ A, B, C ≤ 2·109) — corresponding coefficients of the line equation. It is guaranteed that A2 + B2 > 0.

    Output

    If the required point exists, output its coordinates, otherwise output -1.

    Examples

    input

    2 5 3

    output

    6 -3

    代码如下:
    #include <iostream>
    
    using namespace std;
    typedef long long ll;
    
    ll ex_gcd(ll a, ll b, ll&x, ll&y)
    {
        if(b == 0)
        {
            x = 1;
            y = 0;
            return a;
        }
        int ans = ex_gcd(b,a%b,x,y);
        int tmp = x;
        x = y;
        y = tmp - a/b * y;
        return ans;
    }
    int main()
    {
        ll x, y;
        ll a, b, c;
        cin >> a >> b >> c;
        c *= -1;
        ll gcd =  ex_gcd(a,b,x,y);
        if(c%gcd)
        {
            cout << "-1" << endl;
        }
        else
        {
            int k = c/gcd;
            x *= k;
            y *= k;
            cout << x << " " << y << endl;
        }
    
        return 0;
    }
    
    

    扩展欧几里得算法

  • 相关阅读:
    九省联考2018 IIIDX
    WC2020 猜数游戏
    Gym101821D Search Engine
    Gym102586B Evacuation
    Gym102576D Clique
    UOJ498 新年的追逐战
    LOJ6703 小 Q 的序列
    Codechef A Leisurely Journey
    LG5050 多项式多点求值 和 LG5158 多项式快速插值
    PE427 n-sequences 和 ZJOI2020 抽卡
  • 原文地址:https://www.cnblogs.com/pprp/p/7656442.html
Copyright © 2020-2023  润新知