Присоединиться

Информатика·Обработка целочисленной информации·11 класс

В аэропорту есть камера хранения из K ячеек, которые пронумерованы с

Условие

В аэропорту есть камера хранения из K ячеек, которые пронумерованы с 1.Принимаемый багаж кладется в свободную ячейку с минимальным номером. Известно время, когда пассажиры сдают и забирают багаж (в минутах с начала суток). Ячейка доступна для багажа, начиная со следующей минуты, после окончания срока хранения. Если свободных ячеек не находится, то багаж не принимается в камеру хранения.Найдите количество багажей, которое будет сдано в камеры за 24 часа и номер ячейки, в которую сдаст багаж последний пассажир.Задание 26Входные данные.В первой строке входного файла находится число K — количество ячеек в камере хранения, во второй строке файла число N — количество пассажиров, сдающих багаж (натуральное число, не превышающее 1000). Каждая из следующих N строк содержит два натуральных числа, не превышающих 1440: время сдачи багажа и время выдачи багажа.Выходные данные.Программа должна вывести два числа: количество сданных в камеру хранения багажей и номер ячейки, в которую примут багаж у последнего пассажира, который сможет сдать багаж.Типовой пример организации данных:2430 100060 10061 11001010 1440Для указанного примера багаж смогут сдать первый, второй и четвёртый пассажир. Последний пассажир сдаст свой багаж в ячейку один, так как к этому моменту первая и вторая ячейка будут свободны. Ответ:

Ответ

5863

Решение по шагам

  1. Как рассуждать

    Решение. Считаем файл в массив и отсортируем его. Будем последовательно заполнять каждую ячейку, проверяя, чтобы время укладки нового багажа отличалось от времени забора багажа предыдущим пассажиром на 1 и более. Также будем запоминать номер последней ячейки, куда был сдан багаж. Приведём решение на языке Python. f = open('26.txt')k = int(f.readline())n = int(f.readline())a = sorted([list(map(int, i.split())) for i in f])count = 0maxt = kposled = 0for i in range (1, k+1): start = 0 for x in a: if x[0]-start >= 1 and x[0] > 0 and x[1] > 0: count +=1 start = x[1] if x[0] >= maxt: maxt = x[0] kposled = i x[0] = -1 x[1] = -1print(count, kposled) В результате работы данного алгоритма при вводе данных из файла в условии получаем ответ — 586

Осталось ещё 2 шага — откроются после входа:

  • Шаг 2
  • Шаг 3
Получить полное решение

Бесплатно · займёт минуту

Другие задачи по теме «Обработка целочисленной информации»