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

© Иванов Дмитрий, МБОУ «Лицей № 2», г. Нижневартовск Задача № 9 Популярная газета объявила конкурс на выбор лучшего фильма, для которого стоит снять продолжение. На выбор читателей было предложено 10 фильмов. Вам предлагается написать эффективную, в том числе и по используемой памяти, программу, которая будет статистически обрабатывать результаты sms-голосования по этому вопросу, чтобы определить популярность того или иного фильма. Следует учитывать, что количество голосов в списке может быть очень велико. На вход программе в первой строчке подается количество пришедших sms-сообщений N. В каждой из последующих N строк записано название фильма. Пример входных данных: 6 Белое солнце пустыни Бриллиантовая рука Белое солнце пустыни Белое солнце пустыни Гараж Бриллиантовая рука Программа должна вывести список всех фильмов, встречающихся в списке, в порядке убывания (невозрастания) количества отданных за них голосов с указанием этого количества голосов. Название каждого фильма должно быть выведено только один раз. Пример выходных данных для приведенных входных данных: Белое солнце пустыни 3 Бриллиантовая рука 2 Гараж 1 Решение: program kino; var a:array[1..10] of string; b:array[1..10] of integer; N,c,k,i:integer; z:string; da:boolean; begin for i:=1 to 10 do begin a[i]:=''; b[i]:=0; end; readln(N);c:=1; for i:=1 to N do begin da:=true; readln(z); for k:=1 to 10 do if a[k]=z then begin b[k]:=b[k]+1; da:=false; end; if da then begin a[c]:=z; b[c]:=b[c]+1; c:=c+1; end; end; for i:=1 to c-1 do writeln(a[i],' ',b[i]); end. май, 2015 г.