После единых выпускных экзаменов по информатике в район пришла информация о том, какой ученик какой школы сколько баллов набрал.
Районный методист решила выяснить номера школ, в которых один и тот же максимальный балл набрало более двух учеников. Например, если в школах 3, 5 и 7 по три ученика набрало баллы соответственно 70, 80 и 90 нужно вывести номера эти школ.
Если таких школ несколько нужно вывести номера этих школ. Если такая школа одна нужно вывести её номер и максимальный балл.
Если таких школ нет, то нужно вывести "Нет таких школ"
Напишите эффективную, в том числе и по используемой памяти, программу (укажите используемую версию языка программирования, например Borland Pascal 7.0), которая должна вывести на экран требуемую информацию. Известно, что информатику сдавало больше 5-ти учеников района. Также известно, что в районе школы с некоторыми номерами не существуют.
На вход программе сначала подаётся число учеников, сдававших экзамен. В каждой из следующих N строк находится информация об учениках в формате:
<Фамилия> <Имя> <Номер школы> <Количество баллов>
где <Фамилия> — строка, состоящая не более чем из 30 символов без пробелов,
<Имя> — строка, состоящая не более чем из 20 символов без пробелов,
<Номер школы> — целое число в диапазоне от 1 до 99,
<Количество баллов> — целое число в диапазоне от 1 до 100.
Эти данные записаны через пробел, причём ровно один между каждой парой (то есть всего по три пробела в каждой строке).
Пример входной строки:
Иванов Иван 50 87
Пример выходных данных:
5 50 74 87
Другой вариант выходных данных:
7
Наибольший балл = 74
Третий вариант выходных данных:
Нет таких школ
var nmax,mах:array[1. .99] of integer;
ch:char;
i,N, sh,ball,k:integer;
begin
for i: =1 to 99 do {обнуляем массивы}
begin
nmax[i] := 0;
max[i]:=-1
end;
readln(N); {считали количество строк}
for i:=1 to N do {перебираем все входные строки}
begin
repeat
read(ch)
until ch=' ';{считана фамилия}
repeat
read(ch) until ch=' ';{считано имя}
readln(sh,ball); {считали номер школы и балл ученика}
if ball>max[sh] then {сравниваем текущий балл с лучшим баллом по школе}
begin
max[sh]:=ball; {меняем лучший балл по школе}
nmax[sh]:=1; {число людей в школе с таким баллом устанавливаем =1}
end
else
if ball=max[sh] then {в школе есть еще такой лучший балл}
nmax[sh] : =nmax[sh] +1; {увеличиваем число людей в школе с таким баллом}
end;
k: =0;
for i:=1 to 99 do
if nmax[i]>2 then {отбираем только школы, у которых лучший балл}
begin {набрало более 2-х учеников}
k:=k+1; {считаем количество таких школ}
ball:=max[i]; {запоминаем балл в какой-нибудь из них}
write(i,' ') {выводим номер такой школы}
end;
if k=0 then
writeln('Нет таких школ')
else
begin
writeln;
if k=1 then
writeln('Наибольший балл = ',ball)
end
end.

