Cod sursa(job #2436844)

Utilizator MatteoalexandruMatteo Verzotti Matteoalexandru Data 7 iulie 2019 13:58:01
Problema Algoritmul lui Euclid extins Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.04 kb
// Matteo Verzotti - C++
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <stack>
#include <queue>
#include <deque>
#include <vector>
#include <ctime>
#include <map>
#include <chrono>
#include <cmath>
#define INF 0x3f3f3f3f
#define MAX(a,b) a>b ? a:b
#define MIN(a,b) a<b ? a:b

using namespace std;

/*mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());

long long rand_seed() {
    long long a = rng();
    return a;
}*/

void euclid(int a,int b,int &d,int &x,int &y) {
    if(!b){
        d = a;
        x = 1;
        y = 0;
        return;
    }
    int x0,y0;
    euclid(b,a%b,d,x0,y0);
    x = y0;
    y = x0 - (a/b) * y0;
}

int main() {
    freopen("euclid3.in","r",stdin);
    freopen("euclid3.out","w",stdout);
    int t,a,b,c,d,x,y;
    scanf("%d",&t);
    while(t--) {
        scanf("%d%d%d",&a,&b,&c);
        euclid(a,b,d,x,y);
        if(c % d)
            printf("0 0\n");
        else printf("%d %d\n",x*(c/d),y*(c/d));
    }
    return 0;
}