模拟7种状态,不解释
program transform;
type
arr=array[1..10,1..10] of char;
var
a,aa,b,c:arr;
n,i,j,k:integer;
procedure init(var d:arr);
var
i,j:integer;
s:string;
begin
for i:=1 to n do
begin
readln(s);
for j:=1 to n do
d[i,j]:=s[j];
end;
end;
function check(a,c:arr):boolean;
var
i,j:integer;
begin
for i:=1 to n do
for j:=1 to n do
if a[i,j]<>c[i,j] then exit(false);
exit(true);
end;
procedure one;
var
i,j,p:integer;
begin
for i:=1 to n do
begin
p:=n+1-i;
for j:=1 to n do
c[j,p]:=aa[i,j];
end;
end;
procedure work1;
var
i:integer;
begin
for i:=1 to 3 do
begin
one;
if check(b,c) then
begin
writeln(i);
close(input);
close(output);
halt;
end;
aa:=c;
end;
end;
procedure four;
var
i,j,p:integer;
begin
for i:=1 to n do
begin
p:=n+1-i;
for j:=1 to n do
c[j,p]:=a[j,i]
end;
end;
begin
assign(input,'transform.in');
reset(input);
assign(output,'transform.out');
rewrite(output);
readln(n);
init(a);
init(b);
aa:=a;
work1;
four;
if check(b,c) then
begin
writeln('4');
close(input);
close(output);
halt;
end;
aa:=c;
for i:=1 to 3 do
begin
one;
if check(b,c) then
begin
writeln('5');
close(input);
close(output);
halt;
end;
aa:=c;
end;
if check(a,b) then
begin
writeln('6');
close(input);
close(output);
halt;
end;
writeln('7');
close(input);
close(output);
end.