Сдвиг массива. Установить максимальный элемент в начало (КуМир)

Тема: 
Массивы

Сдвинуть элементы числового массива так, чтобы на первом месте оказался максимальный. Например, массив
-3 4 8 -1 -10
в результате должен быть таким:
8 -1 -10 -3 4.

В этой задаче подразумевается кольцевой сдвиг, когда элемент вышедший за пределы массива, записывается в крайнюю ячейку с другого его конца.

Алгоритм сдвига на один шаг циклический. Сдвигать можно как вправо, так и влево. Например, циклический сдвиг на один шаг влево превратит массив
-3 4 8 -1 -10
в массив
4 8 -1 -10 -3.
Здесь на место текущего элемента записывается следующий за ним, т.е. выполняется выражение a[i] := a[i+1]. Однако это не касается последнего элемента массива. На его место должен записаться первый. Первый элемент должен быть сохранен заранее, до цикла. После выполнения цикла (до предпоследнего элемента), первый элемент следует записать в последнюю ячейку.

Количество шагов определяется позицией максимального элемента. Однако на единицу меньше, так как если максимальный элемент стоит, например, на пятой позиции, то количество шагов до пятого элемента будет четыре. Таким образом циклический сдвиг на один шаг помещается во внешний цикл, количество итераций которого равно количеству шагов сдвига.

Перед началом сдвига следует найти позицию максимального элемента, а не сам максимальный элемент.

алг
нач
  цел N=15
  цел таб a[1:N]
  цел mi, i, b
  нц для i от 1 до N 
    a[i] := irnd(100)-50
    вывод a[i]:4
  кц
  вывод нс
  mi := 1
  нц для i от 2 до N
    если a[i] > a[mi] то
      mi := i
    все
  кц
  нц для i от 1 до mi-1
    b := a[1]
    нц для i от 1 до N-1
      a[i] := a[i+1]
    кц
    a[N] := b
  кц
  нц для i от 1 до N
    вывод a[i]:4
  кц
кон

Пример выполнения программы:

 -48  -2  42  12 -13   9   0 -28 -12  13  26 -32  13 -14   1
  42  12 -13   9   0 -28 -12  13  26 -32  13 -14   1 -48  -2