Определите максимальное количество собраний, и время между началом
Условие
Входной файл содержит информацию о плане проведения собраний в конференц-зале. Для каждого собрания известно время начала и окончания собрания.
Определите максимальное количество собраний, и время между началом первого мероприятия и окончанием последнего. Если способов выбрать последнее собрание несколько, выбрать нужно то, длительность которого больше.
Задание 26В первой строке входного файла находится натуральное число N (N ≤ 1000), обозначающее количество собраний. Каждая из следующих N строк содержит два натуральных числа: указанное в заявке время начала проведения (в минутах от начала суток, не превышает 1000) и время окончания (в минутах, не превышает 1400) собрания.
Запишите в ответ два числа: максимальное количество собраний и время между началом первого мероприятия и окончанием последнего. Типовой пример организации данных во входном файле:510 150100 110120 130131 150131 180 Ответ:
Ответ
Ответ и полный разбор откроются после входа
Посмотреть ответРешение по шагам
Как рассуждать
Решение. Приведём решение Михаила Кузнецова на языке Python. f = open('26.txt')n = int(f.readline())a = []for s in f: a.append(list(map(int,s.split())))a.sort(key=lambda x: x[1])t = a[0][1] #время окончания последнего мероприятияmeet = [a[0]]for i in range(1, n): if t <= a[i][0]: t = a[i][1] meet.append(a[i]) last_i = itp = meet[-1][1] #время окончания последнего мероприятияT = meet[-1][1] - meet[-1][0] #длительность последнего мероприятияdel meet[-1]t = meet[-1][1] #время окончания предпоследнего мероприятияfor i in range(last_i + 1, n): if t <= a[i][0]: if T < a[i][1] - a[i][0]: T = a[i][1] - a[i][0] tp = a[i][1]print(len(meet)+1, tp - meet[0][0]) В результате работы данного алгоритма при вводе данных из файла в условии получаем ответ — 16
Осталось ещё 1 шаг
Примечание. Путь к файлу необходимо указать…
Бесплатно · займёт минуту