Работы учащихся Решение сложных задач по программированию | Page 3

© Иванов Дмитрий, МБОУ «Лицей № 2», г. Нижневартовск Задача № 2 На вход программы подаются фамилии и имена учеников. Известно, что общее количество учеников не превосходит 100. В первой строке вводится количество учеников, принимавших участие в соревнованиях, N. Далее следуют N строк, имеющих следующий формат: <Фамилия> <Имя> Здесь <Фамилия> – строка, состоящая не более чем из 20 символов; <Имя> – строка, состоящая не более чем из 15 символов. При этом <Фамилия> и <Имя> разделены одним пробелом. Примеры входных строк: Иванова Мария Петров Сергей Требуется написать программу, которая формирует и печатает уникальный логин для каждого ученика по следующему правилу: если фамилия встречается первый раз, то логин – это данная фамилия, если фамилия встречается второй раз, то логин – это фамилия, в конец которой приписывается число 2 и т.д. Например, для входной последовательности Иванова Мария Петров Сергей Бойцова Екатерина Петров Иван Иванова Наташа будут сформированы следующие логины: Иванова Петров Бойцова Петров2 Иванова2 Решение: program login; var N,k,i,l:integer; a:array[1..100] of string; z:string; begin readln(N); for i:=1 to N do begin readln(z); k:=Pos(' ',z); delete(z,k,length(z)-k+1); a[i]:=z; end; k:=1; while k<>0 do begin k:=0; z:=' '; for i:=1 to N do if length(a[i]) >2 then z:=a[i]; for i:=1 to N do if a[i]=z then begin k:=k+1; a[i]:='a'; end; if k<>0 then writeln(z); if k>1 then for i:=2 to k do writeln(z,i); end; end. май, 2015 г.