Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Задача на Python 3.9

Создание Сайтов Ученик (95), на голосовании 2 недели назад
На шахматной доске размером N × N расставлено N шахматных ладей не бьющих друг друга, то есть на каждой вертикали и каждой горизонтали стоит ровно одна ладья.



Шахматную доску повернули на 90◦ по часовой стрелке. Выведите получившуюся расстановку ладей.



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

Формат вывода
Программа должна вывести N чисел – расстановку ладей после поворота в таком же формате
Голосование за лучший ответ
lookalike Ученик (178) 1 месяц назад
def rotate_rooks(N, positions):
# Инициализируем массив для новой расстановки ладей
new_positions = [0] * N

# Для каждой старой позиции ладьи (i-я горизонталь)
for i in range(N):
# После поворота: новая горизонталь будет бывшей вертикалью
new_positions[positions[i] - 1] = N - i

# Выводим новую расстановку
print(' '.join(map(str, new_positions)))

# Чтение входных данных
N = int(input())
positions = [int(input()) for _ in range(N)]

# Вызов функции для вывода результата
rotate_rooks(N, positions)
Похожие вопросы