Cod sursa(job #2585403)

Utilizator sulzandreiandrei sulzandrei Data 19 martie 2020 00:51:41
Problema Algoritmul lui Euclid extins Scor 0
Compilator java Status done
Runda Arhiva educationala Marime 1.82 kb
import java.io.*;
import java.util.Scanner;

class Main {

    public static void main(final String[] args) throws FileNotFoundException, IOException {
        try (final FileReader freader = new FileReader("euclid3.in");
             final Scanner scanner = new Scanner(freader);
             final FileWriter fwriter = new FileWriter("euclid3.out");
             final BufferedWriter bwriter = new BufferedWriter(fwriter)) {
            final int N = scanner.nextInt();
            for (int i = 0; i < N; i++) {
                long a = scanner.nextLong();
                long b = scanner.nextLong();
                final long c = scanner.nextLong();
                long s_i_1 = 1L, s_i = 0L, t_i_1 = 0L, t_i = 1L;
                long div = 0, mod = 0;
                if (b == 0) {
                    if (c % a == 0) {
                        bwriter.write(c / a + " 0");
                    } else {
                        bwriter.write("0 0");
                    }
                    bwriter.newLine();
                    continue;
                }
                while (a % b != 0) {
                    div = a / b;
                    mod = a % b;
                    final long new_s_i = s_i_1 - div * s_i;
                    s_i_1 = s_i;
                    s_i = new_s_i;
                    final long new_t_i = t_i_1 - div * t_i;
                    t_i_1 = t_i;
                    t_i = new_t_i;
                    a = b;
                    b = mod;
                }
                if (c % b != 0) {
                    bwriter.write("0 0");
                    bwriter.newLine();
                } else {
                    s_i = s_i * (c / b);
                    t_i = t_i * (c / b);
                    bwriter.write(s_i + " " + t_i);
                    bwriter.newLine();
                }
            }
        }

    }

}