level 1
扶摇天-
楼主
var
i,j,k,m,n:longint;
tree:array[1..10000] of char;
treel,treer:array[1..10000] of longint;
s:string;
procedure print(k:longint);
begin
if k=0 then exit;
print(treel[k]); print(treer[k]);
write(tree[k]);
end;
begin
assign(input,'fbi.in');
assign(output,'fbi.out');
reset(input);
rewrite(output);
readln(n);
fillchar(tree,sizeof(tree),0);
fillchar(treel,sizeof(treel),0);
fillchar(treer,sizeof(treer),0);
m:=1;
for i:=1 to n do m:=m*2;
readln(s); close(input);
if n=0 then
begin
if s='1' then writeln('I') else writeln('B');
close(output);
halt;
end;
for i:=m to m*2-1 do
begin
if s[i-m+1]='1' then tree[i]:='I' else tree[i]:='B';
treel[i]:=0; treer[i]:=0;
end;
for i:=m-1 downto 1 do
begin
treel[i]:=i*2; treer[i]:=i*2+1;
s:=tree[treel[i]]+tree[treer[i]];
if (s[1]='F')or(s[2]='F') then tree[i]:='F'
else
begin
if s[1]=s[2] then if s[1]='I' then tree[i]:='I' else tree[i]:='B';
if s[1]<>s[2] then tree[i]:='F';
end;
end;
print(1);
close(output);
end.
N=9或N=10时,后面的字母都是B,求教
2010年11月14日 10点11分
1
i,j,k,m,n:longint;
tree:array[1..10000] of char;
treel,treer:array[1..10000] of longint;
s:string;
procedure print(k:longint);
begin
if k=0 then exit;
print(treel[k]); print(treer[k]);
write(tree[k]);
end;
begin
assign(input,'fbi.in');
assign(output,'fbi.out');
reset(input);
rewrite(output);
readln(n);
fillchar(tree,sizeof(tree),0);
fillchar(treel,sizeof(treel),0);
fillchar(treer,sizeof(treer),0);
m:=1;
for i:=1 to n do m:=m*2;
readln(s); close(input);
if n=0 then
begin
if s='1' then writeln('I') else writeln('B');
close(output);
halt;
end;
for i:=m to m*2-1 do
begin
if s[i-m+1]='1' then tree[i]:='I' else tree[i]:='B';
treel[i]:=0; treer[i]:=0;
end;
for i:=m-1 downto 1 do
begin
treel[i]:=i*2; treer[i]:=i*2+1;
s:=tree[treel[i]]+tree[treer[i]];
if (s[1]='F')or(s[2]='F') then tree[i]:='F'
else
begin
if s[1]=s[2] then if s[1]='I' then tree[i]:='I' else tree[i]:='B';
if s[1]<>s[2] then tree[i]:='F';
end;
end;
print(1);
close(output);
end.
N=9或N=10时,后面的字母都是B,求教