Escribir una función
casillas_seguras(n,m,lst) tal que dadas
las dimensiones de un tablero de ajedrez
y una lista lst de posiciones donde
podemos encontrar torres (las piezas de ajedrez), retorne cuántas
casillas seguras, fuera de peligro, hay en el tablero. En este problema,
decimos que una casilla es segura o está fuera de peligro si no está
ocupada ni está amenazada por ninguna torre. Las posiciones vienen dadas
por tuplas de dos elementos
(,)
donde
,
.
Por ejemplo, invocando la función:
casillas_seguras(4,6,[(1,2),(1,4),(2,4),(4,4),(4,6)])
el resultado debe ser 3 (para
entenderlo mejor, es aconsejable dibujar el tablero y las torres).
Hay más ejemplos en los juegos de pruebas públicos.
La función tiene dos enteros y y una lista de posiciones como parámetros.
Se nos garantiza que la lista de posiciones no tiene más de
elementos, todas las posiciones son correctas (están dentro del tablero)
y no hay posiciones repetidas (es decir, si la lista tiene
t elementos, significa que hay
t torres diferentes en el tablero).
No puede usarse ningún módulo adicional.
Una vez definida la función, al probarla en el REPL de Python debería salir lo mismo que puede observar más abajo.
>>> casillas_seguras(4,6,[(1,2),(1,4),(2,4),(4,4),(4,6)]) 3 >>> casillas_seguras(1,1,[(1,1)]) 0 >>> casillas_seguras(2,3,[(1,1)]) 2 >>> casillas_seguras(2,3,[(1,1),(2,3),(2,1)]) 0 >>> casillas_seguras(200,100,[(1,1),(200,1),(1,100),(200,100)]) 19404 >>>