7C - Line - CodeForces Solution


math number theory *1800

Please click on ads to support us..

Python Code:

def gcd(a, b):
    if a == 0:
        return 0, 1, b;

    x, y, g = gcd(b % a, a)
    return y - (b // a) * x, x, g

a, b, c = map(int, input().split())
c = -c
x, y, g = gcd(a, b)

if c % g != 0:
    print("-1")
else:
    x *= c // g
    y *= c // g
    print(x, " ", y)

C++ Code:

#include <bits/stdc++.h>
#define deb(x) cout<<endl<<#x <<" = "<<x<<endl<<endl
using namespace std;
typedef long long ll;
typedef double dd;

ll gcd(ll a,ll b,ll &x,ll &y)
{
    if(a==0){
        x=0;
        y=1;
        return b;
    }
    ll x1,y1;
    ll d=gcd(b%a,a,x1,y1);
    x=y1-(b/a)*x1;
    y=x1;
    return d;
}

bool diophantine(ll a,ll b,ll c,ll &x,ll &y)  // ax + by = c     the first answer in x and y
{
    ll x0,y0;
    ll d=gcd(a,b,x0,y0);
    if(c%d!=0) return false;
    x=x0*(c/d);
    y=y0*(c/d);
    return true;
}

int main()
{
    ll a,b,c; cin>>a>>b>>c;
    ll x,y;
    bool ok=diophantine(a,b,-c,x,y);
    if(ok) cout<<x<<' '<<y<<endl;
    else cout<<-1<<endl;
}


Comments

Submit
0 Comments
More Questions

742A - Arpa’s hard exam and Mehrdad’s naive cheat
1492A - Three swimmers
1360E - Polygon
1517D - Explorer Space
1230B - Ania and Minimizing
1201A - Important Exam
676A - Nicholas and Permutation
431A - Black Square
474B - Worms
987B - High School Become Human
1223A - CME
1658B - Marin and Anti-coprime Permutation
14B - Young Photographer
143A - Help Vasilisa the Wise 2
320A - Magic Numbers
1658A - Marin and Photoshoot
514A - Chewbaсca and Number
382A - Ksenia and Pan Scales
734B - Anton and Digits
1080A - Petya and Origami
1642D - Repetitions Decoding
1440A - Buy the String
1658F - Juju and Binary String
478A - Initial Bet
981A - Antipalindrome
365A - Good Number
1204B - Mislove Has Lost an Array
1409D - Decrease the Sum of Digits
1476E - Pattern Matching
1107A - Digits Sequence Dividing