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

