Cod sursa(job #3162158)

Utilizator BucsMateMate Bucs BucsMate Data 28 octombrie 2023 14:32:48
Problema Algoritmul lui Euclid extins Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.19 kb
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
    ifstream input("euclid3.in");
    ofstream output("euclid3.out");
    int r[4], s[4], t[4], a, b, c, q;
    input>>a;
    while(input>>a){
        input>>b>>c;
        r[1]=a;
        r[2]=b;
        s[1]=1;
        s[2]=0;
        t[1]=0;
        t[2]=1;
        if(b==0){
            if(c%a==0) output<<c/a<<" "<<0<<endl;
            else output<<0<<" "<<0<<endl;
        } else {
            q=a/b;
            r[3]=a-q*b;
            s[3]=s[1]-q*s[2];
            t[3]=t[1]-q*t[2];

            while(r[3]!=0){
                q=r[2]/r[3];
                r[0]=r[2]-q*r[3];
                s[0]=s[2]-q*s[3];
                t[0]=t[2]-q*t[3];

                r[1]=r[2];
                r[2]=r[3];
                r[3]=r[0];

                s[1]=s[2];
                s[2]=s[3];
                s[3]=s[0];

                t[1]=t[2];
                t[2]=t[3];
                t[3]=t[0];
            }

            if(c%r[2]==0){
                output<<c/r[2]*s[2]<<" "<<c/r[2]*t[2]<<endl;
            } else
                output<<0<<" "<<0<<endl;
        }
    }
    return 0;
}