var tomb : array [1..9] of byte = (8, 9, 4, 7, 6, 3, 2, 1, 5); h : array [1..3] of integer = (5, 3, 1); i, j, k, n, x, lepes : integer; begin n := 9; for i := 1 to n do Write(tomb[i], ' '); WriteLn(); for k := 1 to 3 do begin lepes := h[k]; for j := lepes + 1 to n do begin i := j - lepes; x := tomb[j]; while(i>0) and (tomb[i] > x)do begin tomb[i+lepes] := tomb[i]; i := i - lepes; end; tomb[i + lepes] := x; end; end; for i := 1 to n do Write(tomb[i], ' '); WriteLn(); end.