После единых выпускных экзаменов по информатике в район пришла информация о том,какой ученик,какой школы сколько набрал баллов.Эта информация в том же виде была разослана в школы.
Завуч школы №30 решила наградить двух учащихся,которые лучше всех сдали информатику.
Программа должна вывести на экран фамилии и имена этих учеников.
Если наибольший балл набрало больше двух человек-вывести количество таких учеников.
Если наибольший балл набрал один человек,а следующий балл набрало несколько человек-нужно вывести только фамилию и имя лучшего.
Напишите эффективную,в том числе и по используемой памяти, программу(укажите используемую версию языка программирования),которая должна вывести на экран требуемую информацию.Известно,что информатику сдавало больше 5 учеников школы №30.
На вход программе сначала подается число учеников,сдававших экзамен.В каждой из следующих N строк находится информация об учениках в формате:
<Фамилия><Имя><Номер школы><Количество баллов>
<Фамилия>-строка,состоящая не более чем из 30 символов без пробелов,
<Имя>-строка,состоящая не более чем из 20 символов.
<Номер школы>-число в диапазоне от 1 до 99
<Количество баллов>-число в диапазоне от 1 до 100.
Эти данные записаны через пробел,то есть в каждой строке ровно 3 пробела.
var Str,Strmax,Strmax2:string[52];
simvol:char;
i,N,nomer,ball,max,max2,nmax,nmax2:integer;
Begin
max:=-1;
max2:=-1;
Strmax:='';
nmax:=0;
Writeln('Введите количество учеников: ');readln(N);
for i:=1 to N do
begin
str:='';
Repeat
read(simvol);
Str:=Str+simvol;
Until simvol=' ';
Repeat
read(simvol);
Str:=Str+simvol;
Until simvol=' ';
read(nomer);
read(ball);
if nomer=30 then
if ball>max then
begin
max2:=max;
max:=ball;
Strmax2:=strmax;
Strmax:=Str;
nmax2:=nmax;
nmax:=1;
end
else
if ball=max then
begin
nmax:=nmax+1;
nmax2:=nmax;
Strmax2:=Strmax;
end
else if ball>max2 then
begin
max2:=ball;
Strmax2:=Str;
nmax2:=1;
end
else if ball=max2 then nmax2:=nmax2+1;
end;
if (nmax=2) or (nmax=1) and (nmax2=1) then
begin
writeln(Strmax);
writeln(Strmax2);
end
else
if (nmax=1) and (nmax2>1) then writeln(StrMax);
if nmax>2 then writeln(nmax);
End.

