Поиск по этому блогу

воскресенье, 16 февраля 2020 г.

С27 задача 13 на Питоне

На автозаправочных станциях (АЗС) продается бензин с маркировкой 92, 95 и 98. В городе N был проведен мониторинг цены бензина на различных АЗС. Напишите эффективную по времени работы и по используемой памяти программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), которая будет определять для каждого вида бензина, сколько АЗС продают его дешевле всего.
На вход программе в первой строке подается число данных N о стоимости бензина. В каждой из последующих N строк находится информация в следующем формате:

<Компания> <Улица> <Марка> <Цена>

где <Компания> – строка, состоящая не более, чем из 20 символов без пробелов, <Улица> – строка, состоящая не более, чем из 20 символов без пробелов, <Марка> – одно из чисел – 92, 95 или 98, <Цена> – целое число в диапазоне от 1000 до 3000, обозначающее стоимость одного литра бензина в копейках.
<Компания> и <Улица>, <Улица> и <Марка>, а также <Марка> и <Цена> разделены ровно одним пробелом. Пример входной строки:

Синойл Цветочная 95 2250

Программа должна выводить через пробел 3 числа – количество АЗС, продающих дешевле всего 92-й, 95-й и 98-й бензин соответственно. Если бензин какой-то марки нигде не продавался, то следует вывести 0.

Пример выходных данных:

12 1 0

Решение

n=int(input())
g92=[]
g92=[0]*2
g95=[]
g95=[0]*2
g98=[]
g98=[0]*2
for i in range(n):
    s1=input()
    p = s1.index(' ')
    s1 = s1[p+1:]
    p = s1.index(' ')
    s1 = s1[p+1:]
    p = s1.index(' ')
    g = int(s1[:p+1])
    s1 = s1[p+1:]
    c = int(s1)
    if g==15:
        if g92[0]==0:
            g92[0]=c
            g92[1]=1
        elif g92[0]==c:
            g92[1]+=1
        elif g92[0]>c:
            g92[0]=c
            g92[1]=1
    if g==20:
        if g95[0]==0:
            g95[0]=c
            g95[1]=1
        elif g95[0]==c:
            g95[1]+=1
        elif g95[0]>c:
            g95[0]=c
            g95[1]=1
    if g==25:
        if g98[0]==0:
            g98[0]=c
            g98[1]=1
        elif g98[0]==c:
            g98[1]+=1
        elif g98[0]>c:
            g98[0]=c
            g98[1]=1
print(g92[1],' ',g95[1],' ',g98[1])

Комментариев нет:

Отправить комментарий