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