По проге!
макс и даниил играют в игру.
даниил написал на доске все целые числа от 1 до n. теперь он будет стирать числа, а макс должен указывать, какие числа следует стереть.
позиции чисел нумеруются слева направо, начиная с единицы. каждый раз, пока на доске остаются не менее двух чисел, макс может попросить даниила стереть либо все числа на чётных позициях, либо все числа на нечётных позициях.
после каждого стирания позиции чисел, оставшихся на доске, заново нумеруются слева направо, начиная с единицы.
макс победит в игре, если последним числом, оставшимся на доске, будет x. максу правильно указать даниилу, какие числа нужно стирать.
примеры
входные данные
10 1
выходные данные
0 0 0 0
входные данные
10 10
выходные данные
1 0 0 1
уменя такой код: (выдает тайм лимит)
n, x = map(int,
l = [i for i in range(1, n + 1)]
while n > 1:
if n % 2 == 1 and x % 2 == 1:
n //= 2
n += 1
else:
n //= 2
if x % 2 == 0:
print(1, end = ' ')
else:
print(0, end = ' ')
if x % 2 == 1:
x //= 2
x += 1
else:
x //= 2
можно записать так:
n, x = map(int,
l = [i for i in range(1, n + 1)]
while n > 1:
n = n // 2 + (n % 2 + x % 2) // 2
print(abs(x % 2 - 1), end = ' ')
x = (x + x % 2) // 2
140
152
Ответы на вопрос:
Популярно: Информатика
-
отличник2287810.02.2022 11:38
-
lalalypsik26.11.2022 13:41
-
Liana0310200031.12.2021 06:18
-
АннаШпак29.05.2022 07:25
-
saaxst28.04.2020 12:23
-
Vika247118.06.2021 22:49
-
EtoBolshayaProblema02.03.2021 18:54
-
Вета200805.01.2021 06:53
-
Пакет1105.07.2022 21:30
-
Rinyasan28.06.2020 06:31