Какие кегли остались стоять после бросков шаров? Задано количество кеглей n и количество бросков k. Последовательность

  • 60
Какие кегли остались стоять после бросков шаров? Задано количество кеглей n и количество бросков k. Последовательность бросков представлена парой чисел l_i и r_i. Выведите последовательность из n символов, где символ "i" означает, что кегля осталась стоять, а символ "." означает, что кегля была сбита.

Пример ввода: 10 3 8 10 2
Звездопад_В_Небе
1
Для решения этой задачи нам потребуется последовательно обработать все броски шаров. У нас есть количество кеглей \( n \), количество бросков \( k \) и последовательность бросков по \( l_i \) и \( r_i \).

1. Начинаем с инициализации списка символов, представляющих состояние кеглей. Создаем список, содержащий только символы "i" длиной \( n \):
\[ \text{{состояние\_кеглей}} = ["i"] * n \]

2. Затем перебираем все броски шаров. Для каждого броска обновляем список состояния кеглей:

a. Извлекаем значения \( l_i \) и \( r_i \) текущего броска.

b. Обновляем состояние кеглей, заменяя символы в соответствующем диапазоне от \( l_i \) до \( r_i \) на символы ".":

\[ \text{{состояние\_кеглей}}[l_i-1:r_i] = ["."] * (r_i - l_i + 1) \]

3. После обработки всех бросков, у нас будет окончательный список состояния кеглей. Можем вывести его:

\[ \text{{print}}("".\text{{join}}(\text{{состояние\_кеглей}})) \]

Применим это решение к примеру из задания.
Введите значения \( l_i \) и \( r_i \) для всех бросков, а затем запустите следующий код:

python
# Ввод количества кеглей и бросков
n, k = map(int, input().split())

# Инициализация списка состояния кеглей
состояние_кеглей = ["i"] * n

# Обработка бросков шаров
for _ in range(k):
l, r = map(int, input().split())
состояние_кеглей[l-1:r] = ["."] * (r - l + 1)

# Вывод окончательного состояния кеглей
print("".join(состояние_кеглей))


При вводе значений \( l_i \) и \( r_i \) для примера из задания (3 8), с последующим запуском кода, будет выведена последовательность кеглей:


iii.....ii


Это означает, что после трех бросков шаров, осталось стоять 2 кегли под номерами 1 и 10, а остальные были сбиты.