Задача У продавца воздушных шариков есть N шаров. Каждый из них имеет некоторый цвет. Однако совсем недавно Три Толстяка издали указ, разрешающий торговать шариками какого-то одного цвета. Чтобы не нарушать закон, но при этом и не потерять прибыль, продавец решил перекрасить некоторые из своих шариков.
Напишите программу для определения минимального количества перекрашиваний.
Входные данные
В первой строке входного файла задано количество шариков N (1 ≤ N ≤ 100000). Вторая строка состоит из N целых чисел, в пределах от 1 до 9, определяющие цвета шариков (1 - синий, 2 - зеленый, 3 - голубой, 4 - красный, 5 - розовый, 6 - желтый, 7 - серый, 8 - черный, 9 - белый).
Выходные данные
В единственную строку выходного файла выведите минимальное количество шариков, которое необходимо перекрасить, чтобы все шарики были одного цвета.
Мой код на паскале. Где ошибка? Помогите пожалуйста.
Program ex2;
var a:array[1..9] of integer;
n,k,i,max,b,h,t:integer;
Begin
writeln('введите количество шариков');
readln(n);
write('введите номер цвета шарика через пробел');
read(k);
case k of
1: writeln('Синий');
2: writeln('Зелёный');
3: writeln('Голубой');
4: writeln('Красный');
5: writeln('Розовый');
6: writeln('Жёлтый');
7: writeln('Серый');
8: writeln('Чёрный');
9: writeln('Белый');
end;
procedure init;
var i,t:integer;
begin
readln(h)
for i:=1 to h do
begin
read(t);
(a[t]):=(a[t]+1);
end;
end;
for i:=1 to max do
a[i]:=0;
init;
max:=a[1];
for i:=2 to 9 do
if a[i]>max then max:=a[i];
b:=n-max;
writeln (b);
end;
end.