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