12121. Обертання
Вам надається сітка з \(N\) рядків і \(N\) стовпців. У квадраті в \(i\)-му рядку зверху та \(j\)-му стовпчику зліва написано ціле число \(A_{i,j}\) . Тут гарантовано, що \(A_{i,j}\) дорівнює або 0, або 1.
Пересуньте цілі числа, написані на зовнішніх квадратах, на один квадрат за годинниковою стрілкою та виведіть отриману сітку.
Тут зовнішні квадрати є принаймні в одному з 1-го рядка, N-го рядка, 1-го стовпця та N-го стовпця.
Обмеження
- \(2≤N≤100\)
- \(0≤A_{i,j} ≤1\) \((1≤i,j≤N)\)
- Усі вхідні значення є цілими числами.
Формат вхідних даних
Перший рядок містить ціле число \(N\).
Наступні \(N\) рядків містять по \(N\) цілих чисел \(A_{i,j}\).
Формат вихідних даних
У вихідний потік виведіть отриману таблицю.
Приклад вхідних даних
4
0101
1101
1111
0000
Приклад вихідних даних
1010
1101
0111
0001
Позначимо через \((i,j)\) квадрат у \(i\)-му рядку зверху та \(j\)-му стовпчику зліва.
Зовнішні квадрати в порядку за годинниковою стрілкою, починаючи з (1,1), являють собою наступні 12 квадратів: (1,1),(1,2),(1,3),(1,4),(2,4) ,(3,4),(4,4),(4,3),(4,2),(4,1),(3,1) і (2,1). Зразок вихідних даних показує результуючу сітку після зміщення цілих чисел, записаних у цих квадратах, на один квадрат за годинниковою стрілкою.
Приклад вхідних даних
2
11
11
Приклад вихідних даних
11
11
Приклад вхідних даних
5
01010
01001
10110
00110
01010
Приклад вихідних даних
00101
11000
00111
00110
10100
Коментарі