Cod sursa(job #1762474)

Utilizator Alex.PAlexandru Pacurar Alex.P Data 23 septembrie 2016 16:24:24
Problema Algoritmul lui Euclid extins Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <stdio.h>
#include <stdlib.h>

using namespace std;

void cmmdc(long long a, long long b, long long &x, long long &y){
    if(b==0){
        x=1;
        y=0;
    }else{
        long long x1,y1;
        cmmdc(b,a%b,x1,y1);
        x=y1;
        y=x1-a/b*y1;
    }
}

int main()
{
    FILE *fin, *fout;
    long long n,a,b,x,y,c,cm;
    fin=fopen("euclid3.in","r");
    fout=fopen("euclid3.out","w");
    fscanf(fin,"%lld",&n);
    for(n;n>0;n--){
        fscanf(fin,"%lld%lld%lld",&a,&b,&c);
        cmmdc(a,b,x,y);
        cm=a*x+b*y;
        if(c%cm!=0){
            fprintf(fout,"0 0\n");
        }else{
            fprintf(fout,"%lld %lld\n",x*c/cm,y*c/cm);
        }
    }
    fclose(fin);
    fclose(fout);
    return 0;
}