Recherche parallèle dans une matrice bidimensionnelle à l’aide de goroutines et de canaux

Go Hard goroutines

Tâche «Recherche parallèle dans une matrice bidimensionnelle à l’aide de goroutines et de canaux»

Étant donné une matrice rectangulaire d’entiers. Il faut implémenter un algorithme parallèle pour compter le nombre d’occurrences d’un nombre donné dans la matrice. L’algorithme doit diviser la matrice en N parties égales (par lignes), lancer N goroutines pour traiter chaque partie en parallèle, collecter les résultats via un canal et afficher le total. Si le nombre n’est pas trouvé, afficher 0. Utilisez sync.WaitGroup pour la synchronisation des goroutines.

Format d\ entrée

Première ligne : deux entiers M et N (1 ≤ M, N ≤ 1000) — dimensions de la matrice. Les M lignes suivantes : N entiers — éléments de la matrice. Dernière ligne : un entier X — valeur recherchée.

Format de sortie

Un entier — le nombre d’occurrences de X dans la matrice.

Exemples

Exemple 1

ENTRÉE
3 3 1 2 3 4 5 6 7 8 9 5
SORTIE
1

Exemple 2

ENTRÉE
2 4 1 2 3 4 2 3 4 5 10
SORTIE
0

Exemple 3

ENTRÉE
0 2 next next reset next next
SORTIE
0 2 0 2

Exemple 4

ENTRÉE
3 2 3 4
SORTIE
12
main.go