program check; function nr(i,j : integer) : integer; begin nr := (((i+j-1)*(i+j)) div 2)-(i-1); end; function nr2i(n : integer) : integer; var h : integer; begin h := Trunc(1/2+sqrt(2*n))+1; nr2i := (((h-1)*h) div 2)-(n-1); end; function nr2j(n : integer) : integer; var h : integer; begin h := Trunc(1/2+sqrt(2*n))+1; nr2j := h - nr2i(n); end; procedure test(max : integer); var i,j,n,sum : integer; begin for i := 1 to max do begin for j := 1 to max-i+1 do begin Writeln(i,',',j,' = ',nr(i,j)); end; end; Writeln; sum := (max*(max+1)) div 2; for n := 1 to sum do begin Writeln(n,' = ',nr2i(n),',',nr2j(n)); end; Writeln; for n := 1 to sum do begin Writeln(n,' = ',nr(nr2i(n),nr2j(n))); end; Writeln; for i := 1 to max do begin for j := 1 to max-i+1 do begin Writeln(i,' = ',nr2i(nr(i,j)),' ; ',j,' = ',nr2j(nr(i,j))); end; end; end; begin test(9); { test(100); } end.