Часть 6-5 Строковый тип. Несколько максимумов

 

1) В молочных магазинах города Х продается сметана с жирностью 15, 20 и 25 процентов. В городе X был проведен мониторинг цен на сметану. Напишите эффективную по времени работы и по используемой памяти программу, которая будет определять для каждого вида сметаны, сколько магазинов продают ее дешевле всего. На вход программе сначала подается число магазинов N. В каждой из следующих N строк находится информация в следующем формате:

<Фирма> <Улица> <Жирность> <Цена>

где <Фирма> - строка, состоящая не более, чем из 20 символов без пробелов, <Улица> - строка, состоящая не более, чем из 20 символов без пробелов, <Жирность> - одно из чисел - 15, 20 или 25, <Цена> - целое число в диапазоне от 2000 до 5000, обозначающее стоимость одного литра сметаны в копейках. <Фирма> и <Улица>, <Улица> и <Жирность>, а также <Жирность> и <Цена> разделены ровно одним пробелом. Пример входной строки:

Перекресток Короленко 25 3200

Программа должна выводить через пробел 3 числа - количество магазинов, продающих дешевле всего сметану с жирностью 15, 20 и 25 процентов. Если какой-то вид сметаны нигде не продавался, то следует вывести 0.

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

12 10 0

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

На вход программе в первой строке подается число данных N о стоимости бензина. В каждой из последующих N строк находится информация в следующем формате:

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

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

<Компания> и <Улица>, <Улица> и <Марка>, а также <Марка> и <Цена> разделены ровно одним пробелом. Пример входной строки:

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

3) На вход программе подаются сведения о студентах некоторого вуза. В первой строке сообщается количество студентов N (не более 100). Каждая из следующих строк имеет формат:

<фамилия> <имя> <курс> <стипендия>

Все данные в строке разделяются одним пробелом. Фамилия состоит не более, чем из 20 символов, имя - не более, чем из 15. Курс - целое число от 1 до 5, стипендия - целое число. Требуется написать программу, которая будет выводить фамилии и имена всех студентов, имеющих максимальные стипендии на каждом курсе.

Пример входных строк:

Федорова Ирина 5 4500

Семенов Илья 3 2800

Пример выходных строк:

Курс 1

Петров Иван

Иванов Сидор

Курс 3

Смирнов Максим

4) На вход программы подаются сведения о результатах соревнований по школьному многоборью. Многоборье состоит из соревнований по четырем видам спорта, участие в каждом из которых оценивается баллами от 0 до 10 (0 баллов получает ученик, не принимавший участия в соревнованиях по данному виду спорта). Победители определяются по наибольшей сумме набранных баллов. Известно, что общее количество участников соревнований не превосходит 100.

В первой строке вводится количество учеников, принимавших участие в соревнованиях, N. Далее следуют N строк, имеющих следующий формат:

<Фамилия> <Имя> <Баллы>

Здесь <Фамилия> - строка, состоящая не более чем из 20 символов; <Имя> - строка, состоящая не более чем из 15 символов; <Баллы> - строка, содержащая четыре целых числа, разделенных пробелом, соответствующих баллам, полученным на соревнованиях по каждому из четырех видов спорта. При этом <Фамилия> и <Имя>, <Имя> и <Баллы> разделены одним пробелом. Примеры входных строк:

Иванова Мария 5 8 6 3

Петров Сергей 9 9 5 7

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

5) На вход программы подаются сведения о сотрудниках некоторой организации. В первой строке сообщается количество сотрудников N, которое не меньше 5, но не превосходит 1000, каждая из N следующих строк имеет следующий формат: Фамилия Должность Стаж Оклад Премия, где Фамилия- строка, состоящая не более чем из 20 символов, Должность- строка, состоящая не более чем из 15 символов, Стаж Оклад Премия – целые числа. Все элементы отделены друг от друга пробелом.

Пример: Иванов механик 15 25500 5000 . Требуется написать программу, которая будет выводить на экран фамилии, должности и стаж трех сотрудников с наибольшей зарплатой. Если есть другие сотрудники, что и один из этих трех, то их тоже необходимо вывести.Зарплата сотрудника равна сумме его оклада и премии.

6) На автозаправочных станциях (АЗС) продается бензин с маркировкой 92, 95 и 98. В городе N был проведен мониторинг цены бензина на различных АЗС.

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

На вход программе сначала подается число данных о стоимости бензина N. В каждой из следующих N строк находится информация в следующем формате:

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

где <Компания> — строка, состоящая не более чем из 20 символов без пробелов,

<Улица> — строка, состоящая не более чем из 20 символов без пробелов,

<Марка> — одно из чисел — 92, 95 или 98,

<Цена> — целое число в диапазоне от 1000 до 3000, обозначающее стоимость одного литра бензина в копейках.

<Компания> и <Улица>, <Улица> и <Марка>, а также <Марка> и <цена> разделены ровно одним пробелом.

Пример входной строки: