Дистанционная подготовка: Задача №112442 "Ошибка проверки, обратитесь к администраторам"
Задача №112442 "Ошибка проверки, обратитесь к администраторам"
от 2 1 - Понедельник 21 Ноябрь 2016, 00:12
  const
MAX = 10;

var
FIO: array[1..MAX] of string;
count: array[1..MAX] of integer;
i, k, N, nFIO, maxCount: integer;
abbr, s: string;
function Abbrev(s: string): string;
var
i: integer;
a: string;
begin
s := ' ' + s;
a := '';
for i := 2 to Length(s) do
if (s[i - 1] = ' ') and (s[i] ' ') then
a := a + s[i];
Abbrev := a;
end;
begin
readln(abbr);
readln(N);
nFIO := 0;
for i := 1 to MAX do count[i] := 0;
maxCount := 0;
for i := 1 to N do
begin
readln(s);
if abbr = Abbrev(s) then begin
k := 1;
while (k nFIO then begin
nFIO := nFIO + 1;
FIO[nFIO] := s;
count[nFIO] := 1;
end
else count[k] := count[k] + 1;
if count[k] > maxCount then
maxCount := count[k];
end;
end;
for i := maxCount downto 1 do
for k := 1 to nFIO do
if count[k] = i then
writeln(FIO[k], ' ', count[k]);
end.