Cod sursa(job #1743131)

Utilizator mihaitamoglanmihai moglan mihaitamoglan Data 17 august 2016 17:06:34
Problema Algoritmul lui Euclid extins Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 1.15 kb
var k,n,m,x,y,c,d:int64;
    i:longint;
    f,g:text;
procedure divizor(n,m:int64;var x,y,d:int64);
   var x0:int64;
  begin
   x0:=x;
   x:=y-(n div m)*x;
   y:=x0;
   if n mod m =0 then d:= m
     else d:=n mod m;
   if m mod d <>0 then divizor(m,n mod m,x,y,d);
  end;
begin
  assign(f,'euclid3.in');
  assign(g,'euclid3.out');
  reset(f);
  rewrite(g);
  read(f,k);
  for i:=1 to k do
    begin
     read(f,n,m,c);
     y:=1;
     x:=0;
     d:=1;
     if (m<>0)and(n<>0) then begin
     divizor(n,m,x,y,d);
     y:=(d-n*x) div m;
     if c mod d <>0 then writeln(g,'0 0')
      else writeln(g,x*(c div d),' ',y*(c div d));
     end
     else if (m=0)and(n<>0) then begin
                    y:=0;
                    if (c mod n=0) then x:=c div n
                      else x:=0;
                    writeln(g,x,' ',y);
                    end
     else if (n=0)and(m<>0) then begin
                        x:=0;
                        if (c mod m=0) then y:= c div m
                           else y:=0;
                        writeln(g,x,' ',y);
                        end;
    end;
    close(f);
    close(g);
end.