Auto f!, i%, j%, k%, kk%, l%, m%, n%, p%, pp%, q%, r%, s% '##E# Input "n,p ", n%, p% Print n, p Dim x%(n%), ff!(n%) pp% = p% * (p% - 1) / 2 Clr q% incq: Inc q% r% = -x%(pp% + 1) * (q% = p%) augr: Inc r% If r% > n% GoTo decq EndIf If ff!(r%) GoTo augr EndIf x%(pp% + q%) = r% ff!(r%) = 1 If q% = 1 If r% < n% GoTo incq Else GoTo fin EndIf EndIf l% = pp% + q% s% = x%(l%) For i% = p% DownTo p% - q% + 2 s% = Abs(s% - x%(l% - 1)) f! = ff!(s%) Exit If f! l% = l% - i% x%(l%) = s% ff!(s%) = 1 Next i% If f! GoTo mara EndIf If q% < p% GoTo incq EndIf @prnt i% = 1 l% = 1 GoTo mara mara: For j% = i% To p% r% = x%(l%) ff!(r%) = 0 l% = l% + j% + 1 Next j% GoTo augr decq: Dec q% i% = p% - q% + 1 l% = (i% - 1) * i% / 2 + 1 GoTo mara fin: End Procedure prnt Print Print For k% = 1 To p% Print Tab(2 * (n% - k% + 1)); For kk% = (k% - 1) * k% / 2 + 1 To k% * (k% + 1) / 2 m% = x%(kk%) If ff!(m%) Print Using("####", m%); Else Print " "; EndIf Next kk% Print Print Next k% Return