Cod sursa(job #2524356)

Utilizator Sho10Andrei Alexandru Sho10 Data 15 ianuarie 2020 16:08:24
Problema Algoritmul lui Euclid extins Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.03 kb
/*
ID: Sho10
LANG: C++
TASK:
*/
#include <bits/stdc++.h> //JuniorMonster a.k.a Sho10
#define ll long long int
#pragma GCC optimize("O3")
#pragma GCC optimize("Ofast")
#define all(a) (a).begin(), (a).end()
#define sz size
#define f first
#define s second
#define pb push_back
#define er erase
#define in insert
#define mp make_pair
#define pi pair
#define rc(s) return cout<<s,0
#define endl '\n'
#define mod 1000000007
#define PI 3.14159265359
#define CODE_START  ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;
ll t,a,b,c,s1=0,s2=0;
void solve(ll x,ll y){
if(y==0){
    s1=1;
    s2=0;
}else {
solve(y,x%y);
ll q1=s1,q2=s2;
s1=q2;
s2=q1-(x/y)*q2;
}
}

int32_t main(){
CODE_START;
ifstream cin("euclid3.in");
ofstream cout("euclid3.out");
cin>>t;
while(t--){
    cin>>a>>b>>c;
    s1=0;
    s2=0;
    ll gc=__gcd(a,b);
    if(c%gc!=0){
        cout<<"0 0"<<endl;
    }else {
    solve(a,b);
    s1=s1*(c/gc);
    s2=s2*(c/gc);
    cout<<s1<<' '<<s2<<endl;
    }
}
}