Параллельный поиск в двумерной матрице с использованием горутин и каналов

Go Сложный goroutines

Задача «Параллельный поиск в двумерной матрице с использованием горутин и каналов»

Дана прямоугольная матрица целых чисел. Необходимо реализовать параллельный алгоритм поиска количества вхождений заданного числа в матрице. Алгоритм должен разделить матрицу на N равных частей (по строкам), запустить N горутин для параллельной обработки каждой части, собрать результаты через канал и вывести общее количество. Если число не найдено, вывести 0. Используйте sync.WaitGroup для синхронизации горутин.

Формат ввода

Первая строка: два целых числа M и N (1 ≤ M, N ≤ 1000) — размеры матрицы. Следующие M строк: N целых чисел — элементы матрицы. Последняя строка: целое число X — искомое значение.

Формат вывода

Одно целое число — количество вхождений X в матрице.

Примеры

Пример 1

ВВОД
3 3 1 2 3 4 5 6 7 8 9 5
ВЫВОД
1

Пример 2

ВВОД
2 4 1 2 3 4 2 3 4 5 10
ВЫВОД
0

Пример 3

ВВОД
0 2 next next reset next next
ВЫВОД
0 2 0 2

Пример 4

ВВОД
3 2 3 4
ВЫВОД
12
main.go