0006. Двойная спираль

Имя входного файла: spiral.in
Имя выходного файла: spiral.out
Ограничение по времени: 2 s
Ограничение по памяти: 64 megabytes

Всем известна классическая олимпиадная задача - в клетки квадрата по спирали записать последовательные натуральные числа. Мы предлагаем вам решить похожую задачу - заполнить квадрат целыми числами по двойной спирали (см. рисунок).

Ноль должен находиться в центре квадрата, положительные числа расположите по ветви, идущей вверх, а отрицательные - по ветви, идущей вниз. Спирали должны закручиваться как на рисунке, против часовой стрелки.

Формат входного файла

Входной файл содержит нечетное натуральное число N (1 ≤ N < 100) - длина стороны квадрата.

Формат выходного файла

В выходной файл выведите требуемую квадратную матрицу N*N с числами, занумерованными по двойной спирали, через пробел.

Пример:

spiral.inspiral.out
3 2 1 -4 3 0 -3 4 -1 -2
5 -8 -7 -6 -5 12 -9 2 1 -4 11 -10 3 0 -3 10 -11 4 -1 -2 9 -12 5 6 7 8


Источник: Командное школьное первенство Республики Карелия по программированию, май 2008.

Обсудить       Отправить решение