Контест Junior Горутины и планировщик GMP обновлено

Параллельная сумма частей массива на горутинах

Условие

Разбейте массив на k подряд идущих частей почти равной длины: первые n mod k частей на один элемент длиннее (части могут быть пустыми, если k > n). Посчитайте сумму каждой части в отдельной горутине.

Ввод: n k (1 ≤ n ≤ 5000, 1 ≤ k ≤ 64), затем n целых чисел, |aᵢ| ≤ 10⁹.

Вывод: первая строка: k сумм частей по порядку, вторая: общая сумма.

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

Пример

7 3
1 2 3 4 5 6 7
6 9 13
28

Как подойти

Границы частей через q = n/k и r = n%k, sums[i] по индексу, WaitGroup.

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

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