Tracks
/
WebAssembly
WebAssembly
/
Ejercicios
/
Puntos de silla
Puntos de silla

Puntos de silla

Intermedia

Introducción

Planeas construir una casa en un árbol en el bosque cerca de tu casa, para que puedas ver el amanecer y el atardecer.

Obtuviste 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 en el árbol.

Un buen árbol cumple dos condiciones:

  • es más alto que todos los árboles hacia el este y el oeste, para que tengas la mejor vista posible de los amaneceres y atardeceres.
  • es más bajo que todos los árboles hacia el norte y el sur, para minimizar cuánto tienes que trepar.

Instrucciones

Tu tarea es encontrar los posibles árboles donde 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 grande de su fila y, a la vez, el más pequeño de su columna.

Puede que una cuadrícula no tenga ningún árbol bueno. 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
  • La fila 2 tiene los valores 5, 3, 2 y 4. El valor más grande es 5.
  • La columna 1 tiene los valores 9, 5 y 6. El valor más pequeño es 5.

Entonces, el punto en [2, 1] (fila: 2, columna: 1) es un excelente lugar para una casa del árbol.

Instrucciones específicas del track

Formato de entrada

La entrada tendrá el formato de un string. Para que este ejercicio sea apto para principiantes, no hace falta que esperes números de varios dígitos.

Los bytes 64-191 de la memoria lineal están reservados para el string de entrada.

Formato de salida

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

Editar en GitHub El enlace se abre en una ventana o una pestaña nuevas
WebAssembly Exercism

¿Todo listo para empezar Puntos de silla?

Regístrate en Exercism para aprender y dominar WebAssembly con 87 ejercicios y mentoría humana real, todo gratis.