Cod sursa(job #1978242)

Utilizator Laura_CorneiLaura Maria Cornei Laura_Cornei Data 7 mai 2017 11:01:19
Problema Algoritmul lui Euclid extins Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.21 kb
#include <fstream>
#include <stdint.h>
using namespace std;
fstream f1("euclid3.in", ios::in);
fstream f2("euclid3.out", ios::out);
int16_t teste;
int32_t a, b, c, d;
int32_t q, r0, r1, r, s0, s1, s, t0, t1, t;
///d=cmmdc(a, b)
int main()
{
    int16_t i;
    f1>>teste;
    for(i=1; i<=teste; i++)
    {
        f1>>a>>b>>c;

        if((a!=0)&&(b!=0))
        {
        r0=a; r1=b;
        s0=1; s1=0;
        t0=0; t1=1;
        do
        {
            q=r0/r1;
            r=r0-r1*q;
            s=s0-s1*q;
            t=t0-t1*q;

            r0=r1; s0=s1; t0=t1;
            r1=r; s1=s; t1=t;
        }
        while(r!=0);

        d=r0;
        if(c%d==0) f2<<s0*(c/d)<<" "<<t0*(c/d)<<"\n";
        else f2<<0<<" "<<0<<"\n";
        }
        else
        {
            if((a==0)&&(b==0)) f2<<0<<" "<<0<<"\n";//nu ai sol, c!=0
            else if(a==0)
            {
               if(c%b==0) f2<<0<<" "<<c/b<<"\n";
               else f2<<0<<" "<<0<<"\n";
            }
                 else if(b==0)
                 {
                    if(c%a==0) f2<<c/a<<" "<<0<<"\n";
                    else f2<<0<<" "<<0<<"\n";
                 }
        }
    }
    return 0;
}