** городской олимпиаде по информатике участникам было предложено выполнить 3 задания,...

0 голосов
213 просмотров

На городской олимпиаде по информатике участникам было предложено выполнить 3 задания, каждое из которых оценивалось по 25-балльной шкале. Известно, что общее количество участников первого тура олимпиады не превосходит 250 человек. На вход программы подаются сведения о результатах олимпиады. В первой строке вводится количество участников N. Далее следуют N строк, имеющих следующий формат:

<Фамилия> <Имя> <Баллы>

Здесь <Фамилия> – строка, состоящая не более чем из 20 символов; <Имя> – строка, состоящая не более чем из 15 символов; <Баллы> – строка, содержащая три целых числа, разделенных пробелом, соответствующих баллам, полученным участником за каждое задание первого тура. При этом <Фамилия> и <Имя>, <Имя> и <Баллы> разделены одним пробелом. Примеры входных строк:

Петрова Ольга 25 18 16

Калиниченко Иван 14 19 15

Напишите программу, которая будет выводить на экран фамилию и имя участника, набравшего максимальное количество баллов. Если среди остальных участников есть ученики, набравшие такое же количество баллов, то их фамилии и имена также следует вывести. При этом имена и фамилии можно выводить в произвольном порядке.


Информатика (24 баллов) | 213 просмотров
Дан 1 ответ
0 голосов

Program Bally; var a:array[1..250] of string; N,l,max,x,i,b,p:integer; z,k:string; begin max:=0; readln(N); for i:=1 to N do readln(a[i]); z:=a[1]; l:=Pos(' ',z); Delete(z,1,l); l:=Pos(' ',z); Delete(z,1,l); Val(copy(z,1,Pos(' ',z)-1),x,l); max:=max+x; Delete(z,1,Pos(' ',z)); Val(copy(z,1,Pos(' ',z)-1),x,l); max:=max+x; Delete(z,1,Pos(' ',z)); Val(z,x,l); max:=max+x; for i:=2 to N do begin z:=a[i]; b:=0; l:=Pos(' ',z); Delete(z,1,l); l:=Pos(' ',z); Delete(z,1,l); Val(copy(z,1,Pos(' ',z)-1),x,l); b:=b+x; Delete(z,1,Pos(' ',z)); Val(copy(z,1,Pos(' ',z)-1),x,l); b:=b+x; Delete(z,1,Pos(' ',z)); Val(z,x,l); b:=b+x; if b>max then max:=b; end; for i:=1 to N do begin z:=a[i]; b:=0; l:=Pos(' ',z); p:=l; Delete(z,1,l); l:=Pos(' ',z); p:=p+l; Delete(z,1,l); Val(copy(z,1,Pos(' ',z)-1),x,l); b:=b+x; Delete(z,1,Pos(' ',z)); Val(copy(z,1,Pos(' ',z)-1),x,l); b:=b+x; Delete(z,1,Pos(' ',z)); Val(z,x,l); b:=b+x; if b=max then begin z:=a[i]; delete(z,p,length(z)-p+1); writeln(z); end; end; end. Наверное так!!

(161 баллов)
0

так??

0

настя

0

вроде как да