Новая Школа - онлайн-школа подготовки к ЕГЭ
При поддержке
Тренировки Пробники Статистика Карточки Учебник Об экзамене Учительская
  • Тренажёр заданий ЕГЭ
  • Тренажёр ЕГЭ по Информатике
  • Список заданий №26
  • Задание №26
  • Задание №69837 ЕГЭ Информатике

    Условие задания #69837

    №26 по КИМ

    Входной файл содержит сведения о заявках на проведение мероприятий в конференц-зале. в каждой заявке указаны время начала и время окончания мероприятия (в минутах от начала суток). Если время начала одного мероприятия меньше времени окончания другого, то провести можно только одно из них. Если время окончания одного мероприятия совпадает со временем начала другого, то провести можно оба.

    Определите, какое максимальное количество мероприятий можно провести в конференц-зале и каков при этом максимально возможный перерыв между двумя последними мероприятиями.

    Входные данные.

    В первой строке входного файла находится число N (N ≤ 1000)  — количество заявок на проведение мероприятий. Следующие N строк содержат пары чисел, обозначающих время начала и время окончания мероприятий. Каждое из чисел натуральное, не превосходящее 1440.

    Запишите в ответе два числа: максимальное количество мероприятий и самый длинный перерыв между двумя последними мероприятиями (в минутах).

    Пример входного файла:

    5

    10 150

    100 120

    131 170

    150 180

    120 130

    При таких исходных данных можно провести максимум три мероприятия, например, мероприятия по заявкам 2, 3 и 5. максимальный перерыв между двумя последними мероприятиями составит 20 мин., если состоятся мероприятия по заявкам 2, 4 и 5.

    26_2024.txt

    Ответ

    Ответ:

    32 15

    Решение

    data = open('26_2024.txt').readlines()[1:]
    times = []
    for item in data:
        time = [int(i) for i in item.split()]
        times.append(time)
    times.sort(key=lambda x: x[1])
    selectedTimes = [times[0]]
    for time in times[1:]:
        if selectedTimes[-1][1] <= time[0]:
            selectedTimes.append(time)
    selectedLastTime = selectedTimes[-1]
    for time in times:
        if selectedLastTime[1] <= time[0]:
            selectedLastTime = time
    print(len(selectedTimes), selectedLastTime[0]-selectedTimes[-2][1])

    Понятно ли решение?

    Похожие задания

    15
    Задание №46720Задание №46721Задание №46752Задание №51424Задание №46719Задание №32183Задание №46642Задание №32179Задание №41214Задание №46643Задание №56108Задание №41209Задание №41208Задание №36692Задание №46645
    Бесплатно

    Решай задачи ЕГЭ в приложении

    Скачивай наш Тренажер ЕГЭ на iPhone или Android и тренируйся в любое время и в любом месте!

    Саша — ассистент в телеграмме