12121. Обертання


Відправити розв'язок

Бали: 100
Time limit: 2.0s
Memory limit: 500M

Authors:
Problem type
Allowed languages
C++, Java, Pascal, Python

Вам надається сітка з \(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

Коментарі

Ще немає коментарів.