Cod sursa(job #787295)

Utilizator erdokozieEniko Erdokozi erdokozie Data 13 septembrie 2012 00:45:17
Problema Algoritmul lui Euclid extins Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <iostream>
#include <stdio.h>
#include <string>
#include <sstream>

using namespace std;
int n;

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

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

    fscanf(f,"%d",&n);
    for (int i=1;i<=n;i++){

        long a,b,d,d1,x,y;

        fscanf(f,"%ld %ld %ld",&a,&b,&d);
        euklidesz(a,b,&d1,&x,&y);
        if(d%d1==0){
        fprintf(g,"%ld %ld\n",x*(d/d1),y*(d/d1));
        }
        else{
        fprintf(g,"0 0\n");}
    }
    fclose(f);
    fclose(g);
    return 0;
}