Контест Junior Паттерны конкурентности обновлено

Worker pool с сохранением порядка результатов

Условие

Для каждого числа посчитайте длину последовательности Коллатца до 1 (число шагов: чётное делим на 2, нечётное заменяем на 3x+1). Обработку выполняет пул из w воркеров.

Ввод: n w (1 ≤ n ≤ 3000, 1 ≤ w ≤ 64), затем n чисел от 1 до 10⁶.

Вывод: n результатов в порядке ввода через пробел, затем на отдельной строке номер (с 0) числа с наибольшей длиной (при равенстве наименьший номер).

Решение должно быть конкурентным (горутины), а вывод не должен зависеть от порядка их выполнения.

Пример

5 2
1 2 3 6 7
0 1 7 8 16
4

Как подойти

Канал индексов, w воркеров, res[i], wg.Wait, максимум после ожидания.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.