1. игра в мяч дети встали в круг и бросают друг другу мяч. известно, что каждый ребёнок бросает мяч всегда одному и тому же ребёнку, например, первый ребёнок бросает всегда седьмому, второй ребёнок всегда бросает третьему, и так далее. известно, у какого ребёнка находится мяч в начале игры. требуется определить, у какого ребёнка будет мяч после заданного количества бросков. входные данные в первой строке записываются целые числа n – количество детей, a – номер ребёнка, у которого находится мяч в начале игры, и m – количество бросков мяча (2 ≤ n ≤ 1000, 1 ≤ a ≤ n, 0 ≤ m ≤ 1000000). во второй строке содержится n целых чисел k1, k2, …, kn, где ki – номер ребёнка, которому бросает мяч ребёнок номер i (1 ≤ ki ≤ n, ki ≠ i). выходные данные выведите номер ребёнка, у которого окажется мяч в конце игры.
282
452
Ответы на вопрос:
Если m > n, то рано или поздно процесс зациклится. найдём этот цикл (o( а затем за o(n) получим ответ. для удобства в массивы добавлен пустой нулевой элемент. python 3.5 a, m, n = map(int, to = [none for _ in range(n + 1)] to[0], to[1: ] = none, map(int, first_pass = [none for _ in range(n + 1)] length_of_cycle = none move = 1 current_kid = a while move < m: if length_of_cycle is none: if first_pass[current_kid] is not none: length_of_cycle = move - first_pass[current_kid] move += (m - move) // length_of_cycle * length_of_cycle if move == m: break else: first_pass[current_kid] = move move += 1 current_kid = to[current_kid] print(current_kid)
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
iljapradunp06w1110.03.2020 02:57
-
наталя4005.09.2021 01:20
-
отличник70304.02.2021 00:15
-
Dirol133703.11.2022 03:10
-
Бота2008110.03.2021 19:23
-
Sidor20927.11.2020 17:40
-
Рикон125.04.2022 11:40
-
GOLUBOVICH040030.07.2022 00:09
-
andreyglukhov721.12.2020 11:40
-
kseniyazoloto02.12.2021 04:50
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.