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

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

    №26 по КИМ

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

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

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

     

    5

    10 140

    100 10

    120 10

    131 19

    131 49

     

    Ответ к примеру: 3 1.

    26_59776.txt

    Ответ

    Ответ:

    53 1

    Решение

    f = open('26_59776.txt')
    n = int(f.readline())
    a=[]
    for s in f:
        start,dlit=map(int, s.split())
        a.append([start + dlit, start])
    a.sort()
    count=[]
    z=0
    for i in range(n):
        if z==0:
            z=a[i][0]
            count.append(a[i])
            last=i
        elif z<=a[i][1]:
            z=a[i][0]
            count.append(a[i])
            last=i
    del count[-1]
    z=count[-1][0]
    for i in range (last, n):
        if z==0:
            z=a[i][0]
            count.append(a[i])
        elif z<=a[i][1]:
            count.append(a[i])
    print(len(count), count[-1][1] - count[-2][0])

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

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

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

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

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

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