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

Параллельное умножение матриц по строкам на Go

Условие

Перемножьте матрицы A (n×m) и B (m×p). Каждую строку результата вычисляйте в отдельной горутине (или раздайте строки пулу из GOMAXPROCS воркеров).

Ввод: n m p (1 ≤ n, m, p ≤ 60), затем n строк матрицы A, затем m строк матрицы B. Элементы по модулю до 100.

Вывод: n строк матрицы C = A·B.

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

Пример

2 2 2
1 2
3 4
5 6
7 8
19 22
43 50

Как подойти

Горутина или воркер на строку, запись только в C[i], порядок циклов i-k-j.

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

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