На автозаправочных станциях (АЗС) продается бензин с маркировкой 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 о стоимости бензина. В каждой из последующих 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])
Комментариев нет:
Отправить комментарий