Planeias construir uma casa na árvore num bosque perto da tua casa, para poderes ver o nascer e o pôr do sol.
Obtiveste dados de uma empresa de topografia local que mostram a altura de cada árvore em cada secção retangular do mapa. Precisas de analisar cada grelha do mapa para encontrares boas árvores para a tua casa na árvore.
Uma boa árvore é, ao mesmo tempo:
A tua tarefa é encontrar as árvores potenciais onde podes construir a tua casa na árvore.
A empresa de dados fornece os dados em grelhas que mostram as alturas das árvores. As linhas da grelha representam a direção este-oeste e as colunas representam a direção norte-sul.
Uma árvore aceitável é a maior da sua linha e, ao mesmo tempo, a menor da sua coluna.
Uma grelha pode não ter nenhuma árvore boa. Ou pode ter uma, ou até várias.
Eis uma grelha que tem exatamente uma árvore candidata.
↓
1 2 3 4
|-----------
1 | 9 8 7 8
→ 2 |[5] 3 2 4
3 | 6 6 7 1
Portanto, o ponto em [2, 1] (linha: 2, coluna: 1) é um excelente sítio para uma casa na árvore.
Os dados de entrada serão apresentados no formato de uma string. Para que este exercício continue acessível a quem está a começar, não precisas de contar com números com vários algarismos.
Os bytes 64 a 191 da memória linear estão reservados para a string de entrada.
Espera-se que os dados de saída sejam pares de linha e coluna na forma de u8, concatenados diretamente.
Por exemplo, se houver três pontos de sela
linha: 2, coluna: 1 linha: 2, coluna: 2 linha: 2, coluna: 3
então os dados de saída esperados seriam os valores u8 2, 1, 2, 2, 2, 3
Inscreve-te no Exercism para aprenderes e dominares WebAssembly com 87 exercícios, e mentoria humana real, tudo grátis.