Если наибольший средний балл набрало больше одной школы — вывести количество таких школ

Напишите эффективную, в том числе и по используемой памяти, программу (укажите используемую версию языка программирования, например Borland Pascal 7.0), которая должна вывести на экран требуемую информацию. Известно, что информатику сдавало больше 5-ти учеников района. Также известно, что в районе школы с некоторыми номерами не существуют.

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

<Фамилия> <Имя> <Номер школы> <Количество баллов>

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

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

<Номер школы> — целое число в диапазоне от 1 до 99,

<Количество баллов> — целое число в диапазоне от 1 до 100.

Эти данные записаны через пробел, причём ровно один между каждой парой (то есть всего по три пробела в каждой строке).

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

Иванов Иван 50 87

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

50 74

Другой вариант выходных данных:

11) Имеется список учеников разных школ, сдававших экзамен по информатике, с указанием их фамилии, имени, школы и набранного балла. Напишите эффективную по времени работы и по используемой памяти программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), которая будет определять номера школ, в которых средний балл выше, чем средний по району. Если такая школа одна, нужно вывести и средний балл (в следующей строчке). Известно, что информатику сдавали не менее 5 учеников. Кроме того, школ с некоторыми номерами не существует.

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

<Фамилия> <Имя> <Школа> <Балл>

где <Фамилия> - строка, состоящая не более, чем из 20 символов без пробелов, <Имя> - строка, состоящая не более, чем из 20 символов без пробелов, <Школа> - целое число от 1 до 99, <Балл> - целое число от 1 до 100.

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

Иванов Сергей 50 87

Пример выходных данных, когда найдено три школы:

50 87 23

Пример вывода в том случае, когда найдена одна школа:

Средний балл = 85

12) Дан список результатов сдачи экзамена учащимися школ некоторого района, с указанием фамилии и имени учащегося, номера школы и итогового балла. Напишите эффективную по времени работы и по используемой памяти программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), которая определяет номера школ, в которых больше всего учащихся получило за экзамен максимальный балл среди всех учащихся района.

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

<Фамилия> <Имя> <Номер школы> <Балл>

где < Фамилия > - строка, состоящая не более, чем из 20 символов без пробелов, <Имя> - строка, состоящая не более, чем из 20 символов без пробелов, <Номер школы> - число от 1 до 99, <Балл> - число от 0 до 100. Порядок следования строк - произвольный.

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

б

Иванов Сергей 7 74

Сергеев Петр 3 82

Петров Кирилл 7 85

Кириллов Егор 3 82

Егоров Николай 7 85

Николаев Иван 19 85

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

Примечание. В данном примере максимальный балл по району равен 85, его набрало 2 учащихся из школы 7 и 1 учащийся из школы 19, поэтому выводится только номер школы 7.

При выполнении задания следует учитывать, что значение N может быть велико (до 10.000).

Часть 6-4-ДАТА

1) На вход программе подаются сведения о пассажирах, сдавших свой багаж в камеру хранения. В первой строке задано текущее время: через двоеточие два целых числа, соответствующие часам (от 00 до 21, ровно 2 символа) и минутам (от 00 до 59, ровно 2 символа). Во второй строке задается количество пассажиров N, которое не меньше 10, но не превосходит 1000. В каждой из последующих N строк находится информация о пассажирах в следующем формате:

<Фамилия> <Время освобождения ячейки>

где <Фамилия> - строка, состоящая не более, чем из 20 символов без пробелов, <Время освобождения ячейки> - через двоеточие два целых числа, соответствующие часам (от 00 до 21, ровно 2 символа) и минутам (от 00 до 59, ровно 2 символа). <Фамилия> и <Время освобождения ячейки> разделены ровно одним пробелом. Пример входных строк:

10:00

Иванов 12:00

Петров 10:12

Сидоров 12:12

Программа должна выводить список пассажиров, которые в ближайшие 2 часа должны освободить ячейки. Список должен быть отсортирован в хронологическом порядке освобождения ячеек. В данном случае программа должна вывести

Петров

Иванов

2)

 

3) На вход программы подаются сведения о спортсменах соревнования по бегу на длинные дистанции.

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

<Фамилия > <Имя> <Страна> <Время старта><Время финиша> , где <Фамилия > - строка, состоящая не более чем из 20 символов, <Имя> - строка, состоящая не более чем из 12 символов, <Страна>- строка, состоящая не более чем из 20 символов, <Время старта><Время финиша> имеют формат чч.мм, где чч - часы, мм - минуты, разделенные двоеточием. <Фамилия > <Имя> <Страна> <Время старта><Время финиша> - разделены одним пробелом. Пример входных строк

Кузнецов Сергей USA 14:10 15:10

Светлов Андрей Russia 12:12 13:18

Петров Сергей Canada 10:04 10:55

Требуется написать программу, которая выводит нумерованный список спортсменов в порядке увеличения времени, затраченного на дистанцию, и название страны победителя (если победителей несколько, также вывести названия их стран). Время вывести в минутах.

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

1. Петров Сергей 51 мин. Canada

2. Кузнецов Сергей 60 мин.

3. Светлов Андрей 66 мин.

4) Имеется список людей с указанием их фамилии, имени и даты рождения. Напишите эффективную по времени работы и по используемой памяти программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), которая будет определять самого старшего человека из этого списка и выводить его фамилию и имя, а если имеется несколько самых старших людей с одинаковой датой рождения, то определять их количество.

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

<Фамилия> <Имя> <Дата рождения>

где <Фамилия> - строка, состоящая не более, чем из 20 символов без пробелов, <Имя> - строка, состоящая не более, чем из 20 символов без пробелов, <Дата рождения> - строка, имеющая вид ДД.ММ.ГГГГ, где ДД - двузначное число от 01 до 31, ММ - двузначное число от 01 до 12, ГГГГ - четырехзначное число от 1800 до 2100.

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

Иванов Сергей 27.03.1993

Программа должна вывести фамилию и имя самого старшего человека в списке.

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

Иванов Сергей

Если таких людей, несколько, то программа должна вывести их количество. Пример вывода в этом случае: 3

5) На вход программе подаются 365 строк, которые содержат информацию о среднесуточной темпе-ратуре всех дней 2007 года. Формат каждой из строк следующий: сначала записана дата в виде dd.mm(на запись номера дня и номера месяца в числовом формате отводится строго два символа, день от месяца отделен точкой), затем через пробел (для Бейсика — через запятую) записано значение температуры — число со знаком плюс или минус, с точностью до 1 цифры после десятичной точки.Данная информация отсортирована по значению температуры, т. е. хронологический порядок нарушен. Требуется написать эффективную программу на языке Паскаль или Бейсик, которая будет выводить на экран информацию о месяцах с максимальной среднемесячной температурой. Найденные максимальные значения следует выводить в отдельной строке для каждого месяца в виде: номер месяца, значение среднемесячной температуры, округленное до одной цифры после десятичной точки.

6) На вход программы подается 366 строк, которые содержат информацию о среднесуточной температуре всех дней 2008 года. Формат каждой из строк следующий: сначала записана дата в виде dd.mm (на запись номера дня и номера месяца в числовом формате отводится строго два символа, день от месяца отделен точкой), затем через пробел записано значение температуры - число со знаком плюс или минус, с точностью до 1 цифры после десятичной точки. Данная информация отсортирована по значению температуры, то есть хронологический порядок нарушен. Требуется написать программу на языке Паскаль или Бейсик, которая будет выводить на экран информацию о месяце (месяцах), среднемесячная температура у которого (которых) наименее отклоняется от среднегодовой. В первой строке вывести среднегодовую температуру. Найденные значения для каждого из месяцев следует выводить в отдельной строке в виде: номер месяца, значение среднемесячной температуры, отклонение от среднегодовой температуры.

7) На вход программе подаётся 31 строка. Строки содержат информа­цию о дневных и ночных температурах декабря 2008 года. Формат каждой из строк следующий: сначала записана дата в виде dd (на запись номера дня в числовом формате отводится строго два символа), затем через про­бел записаны значения дневной и ночной температур — числа со знаком плюс или минус. Даты вводятся в порядке возрастания. Требуется напи­сать программу, которая будет выводить на экран информацию о периодах непрерывного повышения среднесуточной температуры. Найденные зна­чения для каждого из периодов следует выводить в отдельной строке в ви­де: номер первого дня периода, номер последнего дня периода, значение среднесуточной температуры за период.

8) На вход программе подаются сведения о ячейках камеры хранения багажа. В первой строке - текущая дата - день (ровно две цифры, от 01 до 31), затем через точку - месяц (ровно две цифры, от 01 до 12). Во второй строке сообщается количество занятых ячеек N (не меньше 3, но не больше 1000). Каждая из следующих строк имеет формат:

<номер ячейки> <дата сдачи багажа>

Номер ячейки - это целое число, дата - 5 символов: день (ровно две цифры, от 01 до 31), затем через точку - месяц (ровно две цифры, от 01 до 12). Сведения отсортированы по номерам ячеек. Все даты относятся к одному календарному году. Считать, что в феврале 28 дней.

Нужно вывести номера тех ячеек, в которых багаж хранится более 3 дней в хронологическом порядке сдачи багажа. Например, если исходные данные были такие:

04.06

1000 01.06

1001 31.05

2007 21.05

то результат должен быть следующий:

9) Вводят день и месяц рождения через пробел. Найти, сколько в каждом месяце дней рождения.

 

10)