Автор задачи: Ден Расковалов.
Грядут очередные выборы. Снова все заборы оклеены листовками, почтовые ящики забиты макулатурой, с экранов телевизоров депутаты обещают сделать нашу жизнь лучше. А программист Васечкин снова завален работой. Необходимо написать программу, которая облегчит подсчет голосов избирателей.
Исходные данные. В первой строчке ввода находятся натуральные числа N – число кандидатов (N<=10000) и M – число избирателей, принявших участие в выборах (M<=10000). Далее следует M строк, в каждой из которых находится номер кандидата, за которого проголосовал избиратель.
Результат. На выходе должно содержаться N строк, в i-ой строке должен быть указан процент избирателей, проголосовавших за i-ого кандидата (с точностью до 2-х знаков после запятой).
Пример.
| Исходные данные
| Результат
|
| 3 6
| 50.00%
33.33%
16.67%
|
Решение. Организуем только один массив - массив счетчиков, каждый элемент которого соответствует числу голосов, отданных за соответствующего кандидата (номер кандидата, за которого проголосовал избиратель это номер элемента массива счетчиков). Соблюдайте правила ввода и вывода, указанные в условии задачи и решайте задачу самостоятельно. Наше решение приведено ниже.
Var a: array [1..10000] of Integer;
i, m, n, k: Integer;
Begin
{вводим число кандидатов и число избирателей}
Readln(n, m);
{обнуляем массив счетчиков}
For i:=1 to n do a[k]:=0;
For i:=1 to m do Begin
Readln(k); {вводим k-номер депутата}
a[k]:=a[k] + 1; {или inc(a[k])}
End;
For i:=1 to n do
Writeln(a[i]/m*100:0:2, '%')
End.