program fbi;
var a:array[1..1024] of char;
b:array[0..1024,1..1024] of char;
n,num:integer;
f:text;
procedure init;
var i:integer;
begin
assign(f,'fbi.in');reset(f);
readln(f,n);
num:=1;
for i:=1 to n do num:=num*2;
for i:=1 to num do read(f,a);
close(f);
end;
procedure main;
var i,j,k:integer;
begin
for i:=1 to num do
if a='0' then b[n,i]:='B' else b[n,i]:='I';
i:=num;k:=n;
while i>1 do
begin
i:=i div 2;dec(k);
for j:=1 to i do
if b[k+1,2*j-1]=b[k+1,2*j] then b[k,j]:=b[k+1,2*j]
else b[k,j]:='F';
end;
end;
procedure output(line,head:integer);
begin
if linen then
begin
output(line+1,2*head-1);
output(line+1,2*head);
end;
write(f,b[line,head]);
end;
begin
init;
main;
assign(f,'fbi.out');rewrite(f);
output(0,1);
writeln(f);
close(f);
end.
刚刚复制了一个程序……
Nothing