记录编号 11247 评测结果 AAAAAAAAAA
题目名称 [NOIP 2007]统计数字 最终得分 100
用户昵称 Gravatarbing 是否通过 通过
代码语言 Pascal 运行时间 0.608 s
提交时间 2009-07-19 13:44:36 内存使用 0.23 MiB
显示代码纯文本
program bing;
type
 tree=record
 l,r:integer;
 n,a:longint;
 end;
var
 f1,f2:text;
 n,nt:longint;
 d:array[0..10000] of tree;
procedure nb(x:longint);
var
 i:integer;
begin
 i:=1;
 repeat
 if (x>d[i].a)and(d[i].r<>0) then i:=d[i].r;
 if (x<d[i].a)and(d[i].l<>0) then i:=d[i].l;
 until (x=d[i].a)or((x>d[i].a)and(d[i].r=0))or((x<d[i].a)and(d[i].l=0));
 if x=d[i].a then inc(d[i].n)
 else
 if (x>d[i].a)and(d[i].r=0) then
  begin
   inc(nt);
   d[nt].a:=x;
   inc(d[nt].n);
   d[i].r:=nt;
  end
 else
  if (x<d[i].a)and(d[i].l=0) then
  begin
   inc(nt);
   d[nt].a:=x;
   inc(d[nt].n);
   d[i].l:=nt;
  end;
end;

procedure init;
var
 i,m:longint;
begin
 assign(f1,'pcount.in');reset(f1);
 assign(f2,'pcount.out');rewrite(f2);
 readln(f1,n);
 readln(f1,m);
 fillchar(d,sizeof(d),0);
 d[1].a:=m;
 d[1].n:=1;
 nt:=1;
 for i:=2 to n do
 begin
  readln(f1,m);
  nb(m);
 end;
end;
procedure print(x:integer);
begin
 if d[x].l<>0 then print(d[x].l);
 writeln(f2,d[x].a,' ',d[x].n);
 if d[x].r<>0 then print(d[x].r);
end;
begin
 init;
 print(1);
 close(f1);close(f2);
end.