Cod sursa(job #1730042)

Utilizator AnaRaduAna-Maria Radu AnaRadu Data 16 iulie 2016 09:48:22
Problema Algoritmul lui Euclid extins Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <stdio.h>
void change(int &old,int &curr,int fresh){
    old=curr;
    curr=fresh;
}
int main(){
    FILE *fin,*fout;
    fin=fopen("euclid3.in","r");
    fout=fopen("euclid3.out","w");
    int i,n,a,b,c,x,y,q,r,oldx,oldy,oldr;
    fscanf(fin,"%d",&n);
    for(i=1;i<=n;i++){
        fscanf(fin,"%d%d%d",&a,&b,&c);
        oldx=1;
        oldy=0;
        oldr=a;
        x=0;
        y=1;
        r=b;
        while(r!=0){
            q=oldr/r;
            change(oldx,x,oldx-q*x);
            change(oldy,y,oldy-q*y);
            change(oldr,r,a*x+b*y);
        }
        if(c%oldr==0){
            oldx*=c/oldr;
            oldy*=c/oldr;
            fprintf(fout,"%d %d\n",oldx,oldy);
        }
        else
            fprintf(fout,"0 0\n");
    }
    fclose(fin);
    fclose(fout);
    return 0;
}