30 БАЛЛОВ!
Задача 7: Игра
На уроке информатики учитель предложил Васе сыграть в следующую игру.
На доске записаны по порядку все целые числа от 1 до N. За один ход можно стереть либо все числа, стоящие на чётных позициях, либо все числа, стоящие на нечётных позициях. После этого оставшиеся числа перенумеровываются заново слева направо; нумерация начинается с единицы.
Игра продолжается, пока на доске есть хотя бы два числа.
Вася выиграет, если после окончания игры единственным оставшимся на доске числом будет число X. Выведите последовательность ходов, которая приведёт к победе Васи. Гарантируется, что Вася всегда может победить.
Входные данные
В первой строке содержится целое число N (2 ≤ N ≤ 109) — начальное количество чисел на доске.
Во второй строке содержится целое число X (1 ≤ X ≤ N) — число, которое должно остаться в конце игры.
Выходные данные
Выведите последовательность целых чисел, состоящую из чисел 1 и 2 — ходов Васи. Число 1 означает, что Вася стирает все числа на нечётных позициях, число 2 — на чётных.
Каждый ход Васи выводите на отдельной строке.
Answers & Comments
Ответ: питон 40 балов
Пошаговое объяснение:n, result = int(input()), int(input())
spis = list(range(1, n + 1))
while spis != [result]:
index = spis.index(result) + 1
if index % 2 != 0:
spis = list(filter(lambda x: spis.index(x) % 2 == 0, spis))
print(2)
else:
spis = list(filter(lambda x: spis.index(x) % 2 != 0, spis))
print(1)