Busca paralela em matriz bidimensional usando goroutines e canais

Go Hard goroutines

Tarefa «Busca paralela em matriz bidimensional usando goroutines e canais»

Dada uma matriz retangular de números inteiros. É necessário implementar um algoritmo paralelo para contar o número de ocorrências de um determinado número na matriz. O algoritmo deve dividir a matriz em N partes iguais (por linhas), iniciar N goroutines para processamento paralelo de cada parte, coletar os resultados através de um canal e exibir o total. Se o número não for encontrado, exibir 0. Use sync.WaitGroup para sincronizar as goroutines.

Formato de Entrada

Primeira linha: dois números inteiros M e N (1 ≤ M, N ≤ 1000) — dimensões da matriz. As próximas M linhas: N números inteiros — elementos da matriz. Última linha: um número inteiro X — valor procurado.

Formato de Saída

Um número inteiro — quantidade de ocorrências de X na matriz.

Exemplos

Exemplo 1

ENTRADA
3 3 1 2 3 4 5 6 7 8 9 5
SAÍDA
1

Exemplo 2

ENTRADA
2 4 1 2 3 4 2 3 4 5 10
SAÍDA
0

Exemplo 3

ENTRADA
0 2 next next reset next next
SAÍDA
0 2 0 2

Exemplo 4

ENTRADA
3 2 3 4
SAÍDA
12
main.go