关闭

CF 7C Line

标签: codeforces数论扩展欧几里得
141人阅读 评论(0) 收藏 举报
分类:

裸拓展欧几里得

#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <cmath>
using namespace std;
typedef long long LL;

LL gcd(LL a,LL b)
{
    return b ? gcd(b,a%b):a;
}
void ex_gcd(LL a,LL b,LL &x,LL &y)
{
    if(b == 0)
    {
        x = 1;
        y = 0;
        return ;
    }
    ex_gcd(b,a%b,x,y);
    LL tmp = x;
    x = y;
    y = tmp-(a/b)*y;
}
int main()
{
    // Ax + By = -C
    LL A,B,C;
    while(cin>>A>>B>>C)
    {
        C = -C;
        LL k = gcd(A,B);
        if(C%k)
            cout<<"-1"<<endl;
        else
        {
            A /= k,B /= k,C /= k;
//            cout<<A<<" "<<B<<" "<<C<<endl;
            LL x,y;
            ex_gcd(A,B,x,y);
//            cout<<x<<" "<<y<<endl;
            x *= C;
            y *= C;
            cout<<x<<" "<<y<<endl;
        }
    }
    return 0;
}


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:16956次
    • 积分:917
    • 等级:
    • 排名:千里之外
    • 原创:79篇
    • 转载:4篇
    • 译文:0篇
    • 评论:0条
    文章分类