На автозаправочных станциях (АЗС) продается бензин с маркировкой 92, 95 и 98. В городе N был проведен мониторинг цены бензина на различных АЗС. Напишите эффективную по времени работы и по используемой памяти программу, которая будет определять для каждого вида бензина, сколько АЗС продают его дешевле всего. На вход программе в первой строке подается число АЗС, участвующих в мониторинге стоимости бензина. В каждой из последующих N строк находится информация в формате:
<Компания>
<Улица> <Марка> <Цена>
где
<Компания> — строка, состоящая не более чем из 20 символов без пробелов,
<Улица> — строка, состоящая не более чем из 20 символов без пробелов,
<Марка> — одно из чисел 92, 95 или 98,
<Цена> — целое число в диапазоне от 1000 до 3000, обозначающее стоимость одного литра бензина в копейках.
<Компания> и <Улица>, <Улица> и <Марка>, <Марка> и <Цена> разделены ровно одним пробелом.
Пример входной строки: Синойл Цветочная 95 2250
Программа должна выводить через пробел три числа — количество АЗС, продающих дешевле всего 92-й, 95-й и 98-й бензин соответственно. Если бензин какой-то марки нигде не продавался, то следует вывести 0.
Пример
выходных данных: 12 1 0
![](/12.jpg)
Дан список результатов сдачи экзамена учащимися школ некоторого района, с указанием фамилии и имени учащегося, номера школы и итогового балла.
Напишите эффективную по времени работы и по используемой памяти программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), которая определяет список школ, в которых средний балл на экзамене, набранный учащимися из данной школы выше, чем средний балл по всему району.
На вход программе в первой сроке подается количество учащихся во всех школах района N.
В каждой из последующих N строк находится информация в следующем формате:
<Фамилия> <Имя> <Номер школы> <Балл>
где <Фамилия> – строка, состоящая не более, чем из 20 символов без пробелов,
<Имя> – строка, состоящая не более, чем из 20 символов без пробелов,
<Номер школы> – число от 1 до 99,
<Балл> - число от 0 до 100.
Порядок следования строк – произвольный.
Пример входных данных:
6
Иванов Сергей 1 90
Сергеев Петр 21 80
Петров Кирилл 31 70
Кириллов Егор 1 80
Егоров Николай 21 90
Николаев Иван 31 70
Программа должна определить количество школ в районе, в которых средний балл на экзамене, набранный учащимися из данной школы выше, чем средний балл по всему району и вывести сначала количество таких школ, а в следующей строке – номера этих школ через пробел. Пример вывода для приведенного выше примера ввода:
2
1 21
При выполнении задания следует учитывать, что значение N может быть велико (до 10.000).
![](/12.jpg)
Задача №3. #
На вход программе подается последовательность цифр. Ввод этих символов заканчивается точкой (другие символы, отличные от «.» и цифр 0 ... 9, во входных данных отсутствуют; в программе на языке Бейсик символы можно вводить по одному в строке, пока не будет введена точка). Требуется написать эффективную программу, которая будет печатать цифры, встречающиеся во входной последовательности, в порядке увеличения частоты их встречаемости. Каждая цифра при этом должна быть распечатана один раз. Если какие-то цифры встречаются одинаковое число раз, то они выводятся по возрастанию. Например, пусть на вход подаются следующие символы: 1232432. В данном случае программа должна вывести: 1 4 3 2.
![](/12.jpg)
Задача №4. #
На вход программе подаются
сведения о сдаче экзаменов учениками 9-х классов некоторой средней школы. В первой строке сообщается количество учеников N, которое не меньше 10, но не превосходит 100, каждая из следующих N строк имеет следующий формат: < Фамилия > <Имя> < оценки >, где < Фамилия > — строка, состоящая не более чем из 20 символов, <Имя> — строка, состоящая не более чем из 15 символов, < оценки > — через пробел три целых числа, соответствующие оценкам по пятибалльной системе.
< Фамилия > и <Имя>, а также <Имя> и < оценки > разделены одним пробелом. Пример входной строки:
Иванов Петр 4 5 4
Требуется написать
программу, которая будет выводить на экран фамилии и имена трех лучших по среднему баллу учеников. Если среди остальных есть ученики, набравшие тот же средний балл, что и один из трех лучших, то следует вывести и их фамилии и имена.
Требуемые имена и фамилии можно выводить в произвольном порядке.Перейти к решению задачи
Задача №5. #
На вход программы подается текст заклинания, состоящего не более чем из 200 символов, заканчивающийся точкой (символ «точка» во входных данных единственный). Оно было зашифровано Гарри Поттером следующим образом. Сначала Гарри определил количество букв в самом длинном слове, обозначив полученное число K (словом называется непрерывная последовательность английских букв, слова друг от друга отделяются любыми другими символами, длина слова не превышает 20 символов). Затем он заменил каждую английскую букву в заклинании на букву, стоящую в алфавите на К букв ранее (алфавит считается циклическим, то есть перед буквой А стоит буква Z), оставив
другие символы неизменными. Строчные буквы при этом остались строчными, а рописные - прописными. Требуется написать как можно более эффективную программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), которая будет выводить на экран текст расшифрованного заклинания.
Например, если зашифрованный текст был таким:
Zb Ra Ca,Dab Ra.
то результат расшифровки должен быть следующим:
Се Ud Fd,Gdc Ud.
![](/12.jpg)
Задача №6.#
На вход программы подается текст заклинания, состоящего не более чем из 200 символов, заканчивающийся точкой (символ «точка» во входных данных единственный). Оно было зашифровано Гарри Поттером следующим образом. Сначала Гарри определил количество букв в самом длинном слове, обозначив полученное число K (словом называется непрерывная последовательность английских букв, слова друг от друга отделяются любыми другими символами, длина слова не превышает 20 символов). Затем он заменил каждую английскую букву в заклинании на букву, стоящую в алфавите на К букв далее (алфавит считается циклическим, то есть перед буквой А стоит буква Z), оставив
другие символы неизменными. Строчные буквы при этом остались строчными, а рописные - прописными. Требуется написать как можно более эффективную программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), которая будет выводить на экран текст расшифрованного заклинания.
Например, если зашифрованный текст был таким:
Се Ud Fd Gde Ud.
то результат расшифровки должен быть следующим:
Zb Ra Ca Dab Ra.
![](/12.jpg)
Задача №7.#
На вход программе подается текст на английском языке, заканчивающийся точкой (другие символы «.» в тексте отсутствуют). Требуется написать программу, которая будет определять и выводить на экран английскую букву, встречающуюся в этом тексте чаще всего, и количество там таких букв. Строчные и прописные буквы при этом считаются неразличимыми. Если искомых букв несколько, то программа должна выводить на экран первую из них по алфавиту.
Например, пусть файл содержит следующую запись: It is not a simple task. Yes!
Чаще всего здесь встречаются буквы I, S и Т (слово Yes в подсчете не учитывается, так как расположено после точки). Следовательно, в данном случае программа должна вывести два символа, разделенных пробелом: I 3.
Задача №8.#
В канцелярских отделах магазинов города X продаются наборы, содержащие карандаши 12, 18 и 24 цветов. В городе X был проведен мониторинг цен на наборы цветных карандашей. Напишите эффективную по времени работы и по используемой памяти программу, которая будет определять для каждого вида наборов, сколько магазинов продают их дешевле всего. На вход программе сначала подается число магазинов N.
В каждой из следующих N строк находится информация в формате:
<Фирма> <Улица> <Количество карандашей в наборе> <Цена>
где
<Фирма> — строка, состоящая не более чем из 20 символов без пробелов,
<Улица> — строка, состоящая не более чем из 20 символов без пробелов,
<Цена> — целое число вдиапазоне от 2000 до 5000, обозначающее стоимость одного набора карандашей в копейках.
<Фирма> и <Улица>, <Улица> и <Количество карандашей в наборе >, <количество карандашей в наборе> и <Цена> разделены ровно одним пробелом.
Пример входной строки: Пятерочка Комсомольская 24 4200
Программа должна выводить через пробел три числа — количество магазинов, продающих дешевле всего карандаши 12, 18 и 24 цветов. Если какой-то вид карандашей нигде не продавался, то следует вывести 0. Пример выходных данных: 14 0 9
![](/i_back.gif)
![](/i_back2.gif)