比赛 20120704 评测结果 AAAAAAAAAA
题目名称 椰子 最终得分 100
用户昵称 czp 运行时间 0.000 s
代码语言 Pascal 内存使用 0.00 MiB
提交时间 2012-07-04 11:14:36
显示代码纯文本
var
 a:array[-200..1200,0..1009] of longint;
 p,w,ansx,ansy:array[1..1000] of longint;
 i,n,h,v,vv,hx:longint;
procedure put(i,x,h:longint);
 begin
  if (a[x,h-1]=0) then put(i,x,h-1) else
   begin
    if (a[x-1,h-1]>0) and (a[x+1,h-1]>0) then
     begin
      a[x,h]:=i;
      ansx[i]:=x;
      ansy[i]:=h;
      if h>hx then hx:=h;
      exit;
     end;
    if (a[x+1,h-1]>0)  then
     begin
      if w[i]>w[a[x,h-1]] then
       begin
        put(a[x,h-1],x-1,h-1);
        a[x,h-1]:=i;
        ansx[i]:=x;
        ansy[i]:=h-1;
       end else begin
         put(i,x-1,h-1);
        end;
      exit;
     end;
    if (a[x-1,h-1]>0)  then
     begin
      if w[i]>w[a[x,h-1]] then
       begin
        put(a[x,h-1],x+1,h-1);
        a[x,h-1]:=i;
        ansx[i]:=x;
        ansy[i]:=h-1;
       end else begin
         put(i,x+1,h-1);
        end;
      exit;
     end;
     if w[i]>w[a[x,h-1]] then
       begin
        put(a[x,h-1],x+1,h-1);
        a[x,h-1]:=i;
        ansx[i]:=x;
        ansy[i]:=h-1;
       end else begin
         put(i,x-1,h-1);
       end;
   end;
 end;
begin
 assign(input,'coconuts.in');reset(input);
 assign(output,'coconuts.out');rewrite(output);
 readln(vv);
 for v:=1 to vv do
 begin
  fillchar(a,sizeof(a),0);
  for i:=-200 to 1200 do
    a[i,0]:=1001;
  hx:=0;
  readln(n);
  for i:=1 to n do
   begin
    readln(p[i],w[i]);
    put(i,p[i],hx+1);
   end;
  for i:=1 to n do
   writeln(ansy[i],' ',ansx[i]);
  writeln;
 end;
 close(input);close(output);
end.