Вывести массив по спирали (КуМир)

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

Дан одномерный массив. Необходимо вывести его построчно (в каждой строке должно быть 10 элементов массива). При этом вывод должен походить на спираль: элементы четных строк должны выводиться в обратном порядке - от большего индекса к меньшему.

Особенности решения задачи:
Пусть переменная i определяет номер строки. Все нечетные строки мы будем выводить обычным способом (от первого элемента к последнему), а четные строки - наоборот.

Необходимо определить индексы элеменов в массиве по номеру выводимой строки. Если строка первая, то индекс первого элемента равен 1, а последнего 10. Если строка вторая, то индексы соответственно равны 11 и 20. Отсюда можно вывести формулы для первого и последнего элемента каждой строки: i*10-9 и i*10, где i - номер строки. Вывод же между четными и нечетными строками отличается лишь тем, как в цикле выводятся элементы. В случае обратного вывода мы идем от элемента с большим индексом к элементу с меньшим (с шагом -1).

алг спираль
нач
  цел таб a[1:50]
  цел i,j
  нц для i от 1 до 50 
    a[i] := int(rnd(100))
    вывод a[i], ' '
    если mod(i,10) = 0 то вывод нс все
  кц; вывод нс
  нц для i от 1 до 5
    если mod(i,2) <> 0 то
      нц для j от i*10-9 до i*10
        вывод a[j],' '
      кц
      вывод нс
     иначе
      нц для j от i*10 до i*10-9 шаг -1
        вывод a[j],' '
      кц
      вывод нс
    все
  кц
кон

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

13 22 74 5 34 86 40 9 63 85 
24 89 23 41 46 59 73 16 42 8 
4 6 83 0 60 17 61 62 83 20 
45 2 63 39 22 35 89 77 34 31 
93 30 44 86 75 97 26 25 98 36 

13 22 74 5 34 86 40 9 63 85 
8 42 16 73 59 46 41 23 89 24 
4 6 83 0 60 17 61 62 83 20 
31 34 77 89 35 22 39 63 2 45 
93 30 44 86 75 97 26 25 98 36