Контест Middle Каналы и select обновлено
Батчер событий: размер пачки и сброс по тику
Условие
Производитель (своя горутина) отправляет в канал события: числа и сигналы tick. Батчер (другая горутина) собирает числа в пачки и отправляет пачку на вывод:
- когда в пачке стало
kчисел; - при
tick, если пачка не пуста; - при закрытии входного канала, если пачка не пуста.
Ввод: k n (1 ≤ k ≤ 1000, 1 ≤ n ≤ 4000), затем n токенов: целое число или tick.
Вывод: по строке на пачку, числа через пробел, затем строка batches B.
Решение должно быть конкурентным (горутины), а вывод не должен зависеть от порядка их выполнения.
Пример
3 10
1 2 tick 3 4 5 6 tick tick 7
1 2
3 4 5
6
7
batches 4
Как подойти
Канал событий, горутина-батчер с текущим слайсом, новый слайс после каждой отправки.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.