Эстафета по кольцу горутин
Условие
k горутин-игроков соединены каналами в кольцо: игрок i читает из своего входного канала и пишет во входной канал игрока (i + 1) mod k. Игрок 0 получает жетон со значением 0. Получив жетон, игрок i прибавляет к значению aᵢ и передаёт жетон дальше. Всего делается n передач (каждая передача это получение жетона игроком и прибавление). После n-го получения жетон дальше не передаётся.
Ввод: k n (1 ≤ k ≤ 1000, 1 ≤ n ≤ 10⁶), затем k чисел aᵢ (|aᵢ| ≤ 10⁶).
Вывод: номер игрока, у которого жетон после n получений, и значение жетона.
Решение должно быть конкурентным (горутины), а вывод не должен зависеть от порядка их выполнения.
Пример
3 5
1 10 100
1 122
Как подойти
Слайс каналов, горутина на игрока, жетон {value, count}, канал done для результата.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.