Cod sursa(job #1537518)

Utilizator Andrei501Clicinschi Andrei Andrei501 Data 27 noiembrie 2015 15:07:17
Problema Algoritmul lui Euclid extins Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 0.87 kb
#include <stdio.h>
#include <stdlib.h>

int x,y,d;

void euclid(int a,int b,int &x,int &y,int &d)
{
    if (b==0)
    {
        x=1;
        y=0;
        d=a;
        return;
    }

    int xxx,yyy;
    euclid(b,a%b,xxx,yyy,d);
    x=yyy;
    y=xxx-yyy*(a/b);
}

int main()
{
    FILE *fin,*fout;
    fin=fopen ("euclid3.in","r");
    fout=fopen ("euclid3.out","w");

    int T;
    fscanf (fin,"%d",&T);

    int i,A,B,C,X,Y,D;

    for (i=1; i<=T; i++)
    {
        fscanf (fin,"%d",&A);
        fscanf (fin,"%d",&B);
        fscanf (fin,"%d",&C);

        euclid(A,B,X,Y,D);

        if (C%D==0)
        {
            fprintf (fout,"%d %d",X*(C/D),Y*(C/D));
        }
        else
        {
            fprintf (fout,"%d %d",0,0);
        }
        fputc ('\n',fout);
    }

    fclose (fin);
    fclose (fout);
    return 0;
}