Cod sursa(job #2637719)

Utilizator alex.prohnitchiAlex Prohnitchi alex.prohnitchi Data 24 iulie 2020 14:59:08
Problema Algoritmul lui Euclid extins Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.95 kb
#pragma GCC optimize("Ofast")
#include <bits/stdc++.h>

typedef long long ll;

const ll mod=1e9+7;

const int dx[] = {0, 1, 0, -1};
const int dy[] = {1, 0, -1, 0};

#define all(x) x.begin(),x.end()
#define allr(x) x.rbegin(),x.rend()
#define rc(x)  return cout<<x<<"\n",0
#define sz(s)  (int) s.size()
#define pb push_back
#define mp make_pair
#define fr first
#define sc second
#define PI 3.14159265358979

using namespace std;

void euclid_ext(ll a, ll b, ll &x, ll &y, ll &d) {
	if (b==0) {
		y=0;
		d=a;
		x=1;
	}
	else {
		ll x0,y0;
		euclid_ext(b,a%b,x0,y0,d);
		x=y0;
		y=(x0-(a/b)*y0);
	}
}

int main() {
ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	ifstream cin("euclid3.in");
	ofstream cout("euclid3.out");
	ll t;
	cin >> t;
	ll a,b,c,x,y,d;
	while (t--) {
		cin >> a >> b >> c;
		
		euclid_ext(a,b,x,y,d);
		if (c%d) {
			cout << "0 0\n";
		}
		else cout << x*(c/d) << " " << y*(c/d) << '\n';
	}
}