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

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

    №26 по КИМ

    На парковке имеется 80 мест для легковых автомобилей и 20 мест для микроавтобусов. Приезжающий на парковку автомобиль занимает любое свободное место соответствующего типа. При этом если свободных мест для легковых автомобилей нет, то легковой автомобиль занимает свободное место, предназначенное для микроавтобуса, но микроавтобус не может занять место, предназначенное для легкового автомобиля. Если подходящего места нет, автомобиль уезжает.

     

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

    Первая строка входного файла содержит целое число N  — общее количество автомобилей, в течение суток приехавших на парковку. Каждая из следующих N строк описывает один автомобиль и содержит 2 целых числа и букву. Первое число означает время в минутах с начала суток, когда автомобиль прибыл на парковку, второе  — необходимую длительность стоянки в минутах. Буква означает тип автомобиля: A  — легковой, B  — микроавтобус.

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

    26 (1).txt

    Ответ

    Ответ:

    717 19

    Решение

    f = open('26.txt')
    f.readline()
    a,b,c = [],[],[]
    for i in f:
        x = i.split()
        x[0],x[1] = int(x[0]),int(x[1])
        c.append(x)
    c.sort()
    k3,k4 = 0,0
    for i in range(len(c)):
        k1,k2 = 0,0
        for i1 in a:
            if i1 > c[i][0]: k1 += 1
        for i1 in b:
            if i1 > c[i][0]: k2 += 1
        if c[i][2] == 'A':
            if k1 < 80:
                a.append(c[i][0] + c[i][1])
                k4 += 1
            else:
                if k2 < 20:
                    b.append(c[i][0] + c[i][1])
                    k4 += 1
                else: k3 += 1
        if c[i][2] == 'B':
            if k2 < 20:
                b.append(c[i][0] + c[i][1])
            else: k3 += 1
    print(k4,k3)

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

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

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

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

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

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