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

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

    №26 по КИМ

    В отделении банка работают два окна для обслуживания клиентов. Некоторые услуги могут быть оказаны только при обращении в определённое окно, некоторые  — при обращении в любое окно. Клиент входит в отделение и встаёт в очередь к тому окну, которое оказывает необходимую ему услугу. Если услуга может быть оказана в любом окне, клиент выбирает то, в очереди к которому в данный момент меньше людей. Если очереди в оба окна одинаковые, клиент выбирает окно с меньшим номером. При этом если в очереди к выбранному окну уже стоит 14 или более человек (включая человека, которого обслуживают в данный момент), пришедший клиент сразу уходит.

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

     

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

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

    Определите, сколько клиентов будет обслужено в течение дня в окне номер 2 и сколько клиентов покинет отделение из-⁠за слишком больших очередей.

    В ответе запишите два целых числа: сначала количество клиентов, обслуженных в окне номер 2, затем количество необслуженных клиентов.

    26 (4).txt

    Ответ

    Ответ:

    126 469

    Решение

    f = open('26.txt')
    n = int(f.readline())
    a = []
    for i in f:
        prixod, dlitel, N_okna = [int(x) for x in i.split()]
        a.append([prixod, dlitel, N_okna])
    a.sort()
    okno_1 = []
    okno_2 = []
    count = 0
    usli = 0
    for prixod, dlitel, N_okna in a:
        while len(okno_1) > 0 and okno_1[0] <= prixod:
            del okno_1[0]
        while len(okno_2) > 0 and okno_2[0] <= prixod:
            del okno_2[0]
        if N_okna == 1 or (N_okna != 1 and N_okna != 2 and len(okno_1) <= len(okno_2)):
            if okno_1 == []:
                okno_1.append(prixod + dlitel)
            elif len(okno_1) < 14:
                okno_1.append(okno_1[-1] + dlitel)
            else:
                usli += 1
        else:
            if okno_2 == []:
                count += 1
                okno_2.append(prixod + dlitel)
            elif len(okno_2) < 14:
                okno_2.append(okno_2[-1] + dlitel)
                count += 1
            else:
                usli += 1
    print(count, usli)

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

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

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

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

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

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