На шахматной доске размером N × N расставлено N шахматных ладей не бьющих друг друга, то есть на каждой вертикали и каждой горизонтали стоит ровно одна ладья. Шахматную доску повернули на 90° по часовой стрелке. Выведите получившуюся расстановку ладей.

Входные данные
Первая строка входных данных содержит целое число N, 1 ≤ N ≤ 105 — размер доски. Следующие N строк содержат по одному числу от 1 до N, а именно, в i-й строке записано число ai — номер вертикали, в которой стоит ладья на i-й горизонтали. В этой задаче горизонтали нумеруются числами от 1 до N сверху вниз, вертикали нумеруются числами от 1 до N слева направо (см. рисунок).

Выходные данные
Программа должна вывести N чисел — расстановку ладей после поворота в таком же формате.

Система оценивания
Решение, правильно работающее только для случаев, когда N ≤ 5, будет оцениваться в

Решение, правильно работающее только для случаев, когда N ≤ 5, будет оцениваться в

Пример
Ввод

Вывод

Пояснение

5
4
2
3
5
1

1
4
3
5
2

Пример соответствует рисункам. Первоначально ладьи стояли в столбцах 4, 2, 3, 5, 1 при перечислении их по строкам сверху вниз. После поворота ладьи стоят в столбцах 1, 4, 3, 5, 2.


На шахматной доске размером N × N расставлено N шахматных ладей не бьющих друг друга, то есть на каж
На шахматной доске размером N × N расставлено N шахматных ладей не бьющих друг друга, то есть на каж
На шахматной доске размером N × N расставлено N шахматных ладей не бьющих друг друга, то есть на каж

alenka199918 alenka199918    3   29.10.2020 14:32    48

Ответы
анна2249 анна2249  29.12.2023 19:06
Добрый день! Для решения этой задачи нам нужно повернуть шахматную доску на 90° по часовой стрелке. Давайте разберемся подробнее.

На входе имеется шахматная доска размером N × N, на которой расставлены N шахматных ладей. Из условия задачи следует, что ладьи не бьют друг друга, то есть на каждой вертикали и каждой горизонтали стоит ровно одна ладья.

Для начала, чтобы понять, какие изменения произойдут при повороте доски на 90° по часовой стрелке, давайте рассмотрим пример со шахматной доской размером 5 × 5:

| 1 | | | | |
|---|---|---|---|---|
| | | | | 2 |
| | | | | |
| | | | | |
| | 3 | | | |

Теперь повернем эту доску на 90° по часовой стрелке:

| | | | | 3 |
|---|---|---|---|---|
| | | | 2 | |
| | | | | |
| | | | | |
| 1 | | | | |

Как мы видим, после поворота ладьи переместились по вертикалям и теперь расположены на следующих позициях:

- Ладья, которая изначально находилась на вертикали 1, теперь находится на вертикали 5.
- Ладья, которая изначально находилась на вертикали 2, теперь находится на вертикали 4.
- Ладья, которая изначально находилась на вертикали 3, теперь находится на вертикали 1.
- Ладья, которая изначально находилась на вертикали 4, теперь находится на вертикали 2.
- Ладья, которая изначально находилась на вертикали 5, теперь находится на вертикали 3.

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

1. Считываем значение N - размер доски.
2. Создаем массив rows размером N и инициализируем его нулями.
Этот массив будет использоваться для хранения информации о вертикалях, на которых находятся ладьи после поворота.
3. Считываем N чисел из входных данных и записываем их в массив rows, преобразуя номера вертикалей после поворота.
Для этого перебираем числа от 1 до N и, если мы считываем число i, то записываем i в rows, на позицию (N - i + 1).
Это позволяет сделать соответствие старого номера вертикали и нового номера вертикали после поворота.
4. Выводим массив rows.

Например, для приведенного в примере вопроса, решение будет следующим:

Вход:
5
4
2
3
5
1

Выход:
1
4
3
5
2

Надеюсь, ответ был подробным и понятным. Если у вас возникнут еще какие-либо вопросы, не стесняйтесь задавать!
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика