PascalABCNET Сначала вводим количество строчек N, где 1<=N <=10^6 Затем вводим с...

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

PascalABCNET
Сначала вводим количество строчек N, где 1<=N <=10^6<br> Затем вводим с клавиатуры Фамилии, имена и баллы, где балл от 0 до 100.
Нужно вывести фамилию и максимальный балл, если таких людей с максимальным баллом несколько, то просто вывести количество таких людей.
Помогите с прогой пожалуйста, очень прошу)


Информатика (108 баллов) | 59 просмотров
Дан 1 ответ
0 голосов
Правильный ответ
Программа

begin
  var n := ReadlnInteger;
  var Data := ArrGen(n, x -> ReadlnString.ToWords);
  var MaxScore := Data.Max(x -> x[2].ToInteger);
  Data.Where(x -> x[2].ToInteger = MaxScore).Select(x ->
x.JoinIntoString).Print(NewLine)

end.

Ввод:

5
Георгий Сазонов 65
Матвей Панфилов 39
Василий Колобов 85
Иван Кириллов 72
Юрий Гришин 85

Вывод:
Василий Колобов 85
Юрий Гришин 85
(13.3k баллов)
0

А можно написать эту прогу в дорогом варианте? Просто мы пишем в другой форме проги со строками. Например последние строчки с Select и Print я вообще не понимаю

0

Решения я уже отредактировать не могу. Where - отбирает элементы последовательности по заданному условию. В данном случае - это элементы с максимальным кол-вом баллов. Select сопоставляет каждому элементу последовательности другой. В данном случае, строку. Print выводит последовательность