Cod sursa(job #1631713)

Utilizator robertadRoxana Rodile robertad Data 5 martie 2016 18:18:24
Problema Iepuri Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.3 kb
program iepuri;
type mat=array[1..1,1..3] of longint;
     matrice=array[1..3,1..3] of longint;
var x,y,z,a1,b1,c1,n,t,k:integer;
    a,c:matrice;
    b:matrice;
    f,g:text;
const mo=666013;
procedure inmultire(var b,a:matrice);
var i,j,d:longint;
  begin
    for i:=1 to 3 do
      for j:=1 to 3 do
        begin
          c[i,j]:=0;
          for d:=1 to 3 do
            c[i,j]:=c[i,j]+a[i,d]*b[d,j];
        end;
    for i:=1 to 3 do
      for j:=1 to 3 do
        a[i,j]:=c[i,j] mod mo;
  end;
procedure exp(p:longint);
  begin
    while p>0 do
      begin
        if p mod 2 =1 then
                      begin
                        inmultire(b,a);
                        p:=p-1;
                      end
                      else
                      begin
                        p:=p div 2;
                        inmultire(b,a);
                      end;
      end;
  end;
begin
  assign(f,'iepuri.in');
  assign(g,'iepuri.out');
  reset(f);
  rewrite(g);
  readln(f,t);
  b[2,1]:=1;
  b[3,2]:=1;
  for k:=1 to t do
    begin
      readln(f,x,y,z,a1,b1,c1,n);
      b[1,3]:=c1;
      b[2,3]:=b1;
      b[3,3]:=a1;
      a[1,1]:=x;
      a[1,2]:=y;
      a[1,3]:=z;
      n:=n-2;
      exp(n);
      writeln(g,a[1,3]);
    end;
  close(f);
  close(g);
end.