На вход программе подаются сведения о сдаче экзаменов учениками 9-х классов некоторой средней школы. В первой строке сообщается количество учеников N, которое не меньше 10, но не превосходит 100, каждая из следующих N строк имеет следующий формат:
<Фамилия> <Имя> <оценки>,
где <Фамилия> – строка, состоящая не более чем из 20 символов, <Имя> – строка, состоящая не более чем из 15 символов, <оценки> – через пробел три целых числа, соответствующие оценкам по пятибалльной системе. <Фамилия> и <Имя>, а также <Имя> и <оценки> разделены одним пробелом. Пример входной строки:
Иванов Петр 4 5 3
Требуется написать как можно более эффективную программу, которая будет выводить на экран фамилии и имена трех худших по среднему баллу учеников. Если среди остальных есть ученики, набравшие тот же средний балл, что и один из трех худших, то следует вывести и их фамилии и имена.
var p:array[1..100] of record
name:string;
sum:integer;
end;
c:char;
i,j,N,s1,s2,s3,m:integer;
begin
readln(N);
for i:=1 to N do
begin
p[i].name:='';
repeat
read(c);
p[i].name:=p[i].name+c
until c=' ';
repeat
read(c);
p[i].name:=p[i].name+c
until c=' ';
p[i].sum:=0;
for j:=1 to 3 do
begin
read(m);
p[i].sum:=p[i].sum+m
end;
readln;
end;
s1:=20; s2:=20; s3:=20;
for i:=1 to N do
begin
if p[i].sum < s1 then
begin
s3:=s2;
s2:=s1;
s1:=p[i].sum
end else
if p[i].sum < s2 then
begin
s3:=s2;
s2:=p[i].sum
end
else
if p[i].sum < s3 then s3:=p[i].sum;
end;
for i:=1 to N do
if p[i].sum < = s3 then writeln(p[i].name);
end.

