program Tournament6; {$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 := (Min+Max) div 2; Tournament(Min,Middle,Eda+'U'); EdaWoKaku(Eda); WriteLn('─┤'); Tournament(Middle+1,Max,Eda+'L'); end; end; {Tournament} var N : Integer; begin WriteLn; Write('n ? '); ReadLn(N); Tournament(1,N,' '); ReadLn; end.