Faça um programa em C que resolva o seguinte problema: dado um reticulado do tipo acima (uma matriz), marcar todas as regiões alagadas maximais. Especificações a serem seguidas:
1 | 0 | 0 | 0 | 0 | 2 | 2 | 0 | 3 | 3 |
1 | 1 | 1 | 0 | 0 | 0 | 2 | 0 | 3 | 0 |
0 | 1 | 0 | 0 | 4 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 4 | 4 | 4 | 4 | 4 | 0 | 0 |
0 | 0 | 0 | 0 | 4 | 4 | 0 | 0 | 5 | 5 |
0 | 0 | 6 | 0 | 0 | 0 | 0 | 5 | 5 | 5 |
0 | 0 | 6 | 6 | 6 | 0 | 0 | 0 | 5 | 5 |
7 | 0 | 6 | 6 | 6 | 6 | 0 | 0 | 0 | 5 |
7 | 0 | 0 | 0 | 0 | 0 | 8 | 8 | 0 | 0 |
7 | 0 | 0 | 0 | 0 | 0 | 8 | 0 | 0 | 0 |
Sugestão: à medida que posições na LISTA vão sendo testadas e vão sendo marcadas (com algum inteiro ), para indicar que estas já foram marcadas, em vez de removê-las da LISTA, você pode armazenar nessas posições um valor negativo, como por exemplo, ou para indicar isso.
Se, adicionalmente, o seu programa imprimir uma matriz do tipo char correspondente à matriz M (marcada), indicando as regiões secas e as diferentes regiões alagadas maximais com caracteres bem adequados e bonitos, você receberá uns pontos adicionais na nota deste EP3. Use sua imaginação (não precisa necessariamente numerar as regiões alagadas)!
Boa sorte!