Búsqueda paralela en una matriz bidimensional usando gorutinas y canales

Go Hard goroutines

Tarea «Búsqueda paralela en una matriz bidimensional usando gorutinas y canales»

Dada una matriz rectangular de números enteros. Es necesario implementar un algoritmo paralelo para buscar la cantidad de ocurrencias de un número dado en la matriz. El algoritmo debe dividir la matriz en N partes iguales (por filas), ejecutar N gorutinas para procesar cada parte en paralelo, recolectar los resultados a través de un canal y mostrar el total. Si el número no se encuentra, mostrar 0. Use sync.WaitGroup para la sincronización de las gorutinas.

Formato de entrada

Primera línea: dos números enteros M y N (1 ≤ M, N ≤ 1000) — dimensiones de la matriz. Las siguientes M líneas: N números enteros — elementos de la matriz. Última línea: un número entero X — valor buscado.

Formato de salida

Un número entero — la cantidad de ocurrencias de X en la matriz.

Ejemplos

Ejemplo 1

ENTRADA
3 3 1 2 3 4 5 6 7 8 9 5
SALIDA
1

Ejemplo 2

ENTRADA
2 4 1 2 3 4 2 3 4 5 10
SALIDA
0

Ejemplo 3

ENTRADA
0 2 next next reset next next
SALIDA
0 2 0 2

Ejemplo 4

ENTRADA
3 2 3 4
SALIDA
12
main.go