В канцелярских отделах магазинов города X продаются наборы, содержащие карандаши 12, 18 и 24 цветов. В городе X был проведен мониторинг цен на наборы цветных карандашей. Напишите эффективную по времени работы и по используемой памяти программу, которая будет определять для каждого вида наборов, сколько магазинов продают их дешевле всего. На вход программе сначала подается число магазинов N. В каждой из следующих N строк находится информация в формате:
<Фирма> <Улица> <Количество карандашей в наборе> <Цена>
где
<Фирма> — строка, состоящая не более чем из 20 символов без пробелов,
<Улица> — строка, состоящая не более чем из 20 символов без пробелов,
<
Количество карандашей в наборе > — одно из чисел 12, 18 или 24,
<Цена> — целое число в диапазоне от 2000 до 5000, обозначающее стоимость одного набора карандашей в копейках.
<Фирма> и <Улица>, <Улица> и <
Количество карандашей в наборе >,
количество карандашей в наборе> и <Цена> разделены ровно одним
пробелом.
Пример входной строки: Пятерочка Комсомольская 24 4200
Программа должна выводить через пробел три числа — количество магазинов, продающих дешевле всего карандаши 12, 18 и 24 цветов. Если какой-то вид карандашей нигде не продавался, то следует вывести 0. Пример выходных данных: 14 0 9
Решение задачи №8.
var
c:char;
min:array[12..24] of integer;
cen:array[12..24] of integer;
x,n,i,k:integer;
begin
for i:=12 to 24 do
min[i]:=5001;
cen[i]:=0;
readln(n);
for i:=1 to n do
begin
repeat
read(c);
until c=' ';
repeat
read(c);
until c=' ';
read(k,x);
if x<min[k] then
begin
min[k]:=x;
cen[k]:=1;
end
else
if x=min[k] then cen[k]:=cen[k]+1;
end;
writeln(cen[12],' ',cen[18],' ',cen[24]);
end.
Алгоритм решения аналогичен алгоритму решения задачи №1.