Cod sursa(job #132676)

Utilizator claudiu_syclaudiu claudiu_sy Data 6 februarie 2008 13:11:34
Problema Iepuri Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.05 kb
{ridicare la putere a unei matrice}
var a,b,r:array [1..3,1..3] of integer;
    i,j,k,l,t,c,x,y,z,d,e:integer;
    n:longint;
    f,g:text;
procedure putere(p:longint);
begin
if p>1 then
   begin
   for i:=1 to 3 do
       for j:=1 to 3 do
           begin
           k:=1;
           repeat
           b[i,j]:=(b[i,j]+(r[i,k]*a[k,j]) mod 666013) mod 666013;
           k:=k+1;
           until k=4;
           end;
   for i:=1 to 3 do
       for j:=1 to 3 do
           begin
       r[i,j]:=b[i,j] mod 666013;
       b[i,j]:=0;
       end;
   putere(p-1);
   end;
   end;




begin
assign(f,'iepuri.in');
assign(g,'iepuri.out');
reset(f);
rewrite(g);
readln(f,t);
for l:=1 to t do
    begin
        read(f,x,y,z,c,d,e,n);
    readln(f);
a[1,1]:=0; a[1,2]:=1; a[1,3]:=0;
a[2,1]:=0; a[2,2]:=0; a[2,3]:=1;
a[3,1]:=e; a[3,2]:=d; a[3,3]:=c;
for i:=1 to 3 do
    for j:=1 to 3 do
        begin
        b[i,j]:=0;
    r[i,j]:=a[i,j];
    end;
putere(n);
z:=x*r[1,1]+y*r[1,2]+z*r[1,3];
writeln(g,z);
end;
close(f);
close(g);
end.