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!