uses crt;
var
m: array [1 .. 50] of integer;
n, i, l, x: integer;
begin
clrscr;
write('n=');
readln(n);
for i := 1 to n do
begin
m[i] := i; // для наглядности введем числа по порядку
write(m[i], ' ');
end;
readln;
l := n div 2;
if n mod 2 = 0 then
for i := 1 to n div 2 do
begin
x := m[i];
m[i] := m[i + l];
m[i + l] := x;
end
else if n mod 2 <> 0 then
begin
x := m[(n div 2) + 1]; // ставим средний элемент на первую позицию
for i := (n div 2) + 1 downto 1 do
m[i] := m[i - 1];
m[1] := x;
// Для того, чтобы поставить средний элемент на последнее место, все делается в зеркальном отображении.
for i := 2 to (n div 2) + 1 do
begin
x := m[i];
m[i] := m[i + l];
m[i + l] := x;
end;
end;
for i := 1 to n do
write(m[i], ' ');
readln;
end.