На шахматной доске размером 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.
Добрый день! Для решения этой задачи нам нужно повернуть шахматную доску на 90° по часовой стрелке. Давайте разберемся подробнее.
На входе имеется шахматная доска размером N × N, на которой расставлены N шахматных ладей. Из условия задачи следует, что ладьи не бьют друг друга, то есть на каждой вертикали и каждой горизонтали стоит ровно одна ладья.
Для начала, чтобы понять, какие изменения произойдут при повороте доски на 90° по часовой стрелке, давайте рассмотрим пример со шахматной доской размером 5 × 5:
Как мы видим, после поворота ладьи переместились по вертикалям и теперь расположены на следующих позициях:
- Ладья, которая изначально находилась на вертикали 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
Надеюсь, ответ был подробным и понятным. Если у вас возникнут еще какие-либо вопросы, не стесняйтесь задавать!
На входе имеется шахматная доска размером 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
Надеюсь, ответ был подробным и понятным. Если у вас возникнут еще какие-либо вопросы, не стесняйтесь задавать!