Planeas construir una casa del árbol en el bosque cerca de tu casa para poder ver el amanecer y el atardecer.
Has obtenido datos de una empresa local de topografía que muestran la altura de cada árbol en cada sección rectangular del mapa. Necesitas analizar cada cuadrícula del mapa para encontrar buenos árboles para tu casa del árbol.
Un buen árbol cumple las dos condiciones siguientes:
Tu tarea es encontrar los posibles árboles en los que podrías construir tu casa del árbol.
La empresa de datos proporciona los datos en forma de cuadrículas que muestran las alturas de los árboles. Las filas de la cuadrícula representan la dirección este-oeste, y las columnas representan la dirección norte-sur.
Un árbol aceptable será el más alto de su fila y, a la vez, el más bajo de su columna.
Puede que una cuadrícula no tenga ningún árbol válido. O puede que tenga uno, o incluso varios.
Aquí tienes una cuadrícula que tiene exactamente un árbol candidato.
↓
1 2 3 4
|-----------
1 | 9 8 7 8
→ 2 |[5] 3 2 4
3 | 6 6 7 1
Así que el punto [2, 1] (fila: 2, columna: 1) es un lugar estupendo para una casa del árbol.
La entrada tendrá el formato de un string. Para que este ejercicio sea apto para principiantes, no hace falta que tengas en cuenta números con más de un dígito.
Los bytes 64-191 de la memoria lineal están reservados para el string de entrada.
La salida se espera en pares de fila y columna como u8 concatenados directamente.
Por ejemplo, si hay tres puntos de silla
fila: 2, columna: 1 fila: 2, columna: 2 fila: 2, columna: 3
entonces la salida esperada serían los valores u8 2, 1, 2, 2, 2, 3
Regístrate en Exercism para aprender y dominar WebAssembly con 87 ejercicios y mentoría humana real, todo gratis.