Контест Middle Делегаты и события обновлено
Подписки на темы: события и отписка
Условие
Смоделируйте издателя событий. Команды:
SUB name topicподписатьnameна тему (повторная подписка ничего не меняет);UNSUB name topicотписать (если не был подписан, ничего не происходит);PUB topicопубликовать событие: каждый текущий подписчик темы получает его.
Ввод: q (1 ≤ q ≤ 10⁴), затем q команд. Имён не больше 200, тем не больше 20.
Вывод: на каждый PUB строку topic число_получателей. В конце одну строку name:получено для всех, кто хоть раз подписывался, по возрастанию имени через пробел (пустая строка, если таких нет).
Пример
6
SUB anna news
SUB boris news
PUB news
UNSUB anna news
PUB news
PUB sport
news 2
news 1
sport 0
anna:1 boris:2
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.