Задать свой вопрос   *более 50 000 пользователей получили ответ на «Решим всё»

Задача 893 На вход программе подаются сведения о...

Условие

На вход программе подаются сведения о номерах школ учащихся, участвовавших в олимпиаде. В первой строке сообщается количество учащихся N, каждая из следующих N строк имеет формат:

<Фамилия> <Инициалы> <номер школы>

где <Фамилия> – строка, состоящая не более чем из 20 символов, <Инициалы> – строка, состоящая из 4-х символов (буква, точка, буква, точка), <номер школы> – не более чем двузначный номер. <Фамилия> и <Инициалы>, а также <Инициалы> и <номер школы> разделены одним пробелом. Пример входной строки:

Иванов П.С. 57

Требуется написать как можно более эффективную программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), которая будет выводить на экран информацию, из какой школы было меньше всего участников (таких школ может быть несколько). При этом необходимо вывести информацию только по школам, пославшим хотя бы одного участника. Следует учитывать, что N>=1000.

информатика 10-11 класс 5455

Решение

const LIM = 99;
var C:array[1..LIM] of integer;
i, p, N, k, r, Min: integer;
s:string;
begin
for k:=1 to 99 do C[k]:=0;
readln(N);
for i:=1 to N do begin
readln(s); { читаем очередную строку }
{ выделяем часть после второго пробела }
p := Pos(' ', s);
Delete(s, 1, p+5);
{ определяем номер школы k }
Val(s, k, r);
C[k] := C[k] + 1; { увеличиваем счетчик k-ой школы }
end;
Min := N;
for k:=1 to LIM do
if (C[k] <> 0) and (C[k]<Min) then Min := C[k];
for k:=1 to LIM do
if C[k] = Min then writeln(k);
end.


Ответ: в решение

Написать комментарий

Меню

Присоединяйся в ВК