Задача 8. Развлечение

N палочек выставили в один ряд, занумеровав их слева направо числами от 1 до N. Затем по этому ряду бросили K камней, при этом i-й камень сбил все палки с номерами от L_i до R_i включительно. Определите, какие палки остались стоять на месте.

Напишите программу, которая получает на вход количество палок N и количество бросков K. Далее идет K пар чисел L_i, R_i, при этом 1≤ L_i≤ R_i≤ N.
Программа должна вывести последовательность из N символов, где j-й символ есть “I”, если j-я палка осталась стоять, или “.”, если j-я палка была сбита.

Пример:

Кол-во палок: 10 
Кол-во бросков: 3
Бросок 1. Сбиты палки с номера 8 
по номер 10
Бросок 2. Сбиты палки с номера 2 
по номер 5
Бросок 3. Сбиты палки с номера 3 
по номер 6

Результат: I.....I...

Решение:

sticks = int(input('Кол-во палок: '))
throws = int(input('Кол-во бросков: '))

row = ['I'] * sticks

for i in range(throws):
    query = 'Бросок ' + str(i + 1) + '. Сбиты палки с номера '
    while True:
        start = int(input(query)) - 1
        if (start >= 0) and (start <= sticks):
            break
    while True:
        end = int(input('по номер ')) - 1
        if (end >= start) and (end <= sticks):
            break
    for j in range(start, end + 1):
        row[j] = '.'

print('Результат: ', *row, sep='')

4140login-checkЗадача 8. Развлечение

Добавить комментарий