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

