program Tournament7; {$APPTYPE CONSOLE} uses SysUtils; procedure EdaWoKaku(Eda : String); var Depth : Integer; K : Integer; begin Depth := Length(Eda); for K := 3 to Depth do if Eda[K-1] = Eda[K] then Write('  ') else Write(' │'); case Eda[Depth] of 'U' : Write(' ┌'); 'L' : Write(' └'); end; end; {EdaWoKaku} procedure Tournament(Min,Max : Integer; Eda : String); var Middle : Integer; begin if Min = Max then begin EdaWoKaku(Eda); WriteLn(Min); end else begin Middle := Random(Max-Min)+Min; Tournament(Min,Middle,Eda+'U'); EdaWoKaku(Eda); WriteLn('─┤'); Tournament(Middle+1,Max,Eda+'L'); end; end; {Tournament} var N : Integer; begin Randomize; repeat WriteLn; Write('n ? '); ReadLn(N); Tournament(1,N,' '); until N = 1; end.