Fuera de Peligro T58556


Statement
 

pdf   zip

thehtml

Escribir una función casillas_seguras(n,m,lst) tal que dadas las dimensiones de un tablero de ajedrez n × m 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 (f,c) donde 1 ≤ fn, 1 ≤ cm.

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.

Entrada

La función tiene dos enteros n ≥ 1 y m ≥ 1 y una lista de posiciones como parámetros.

Se nos garantiza que la lista de posiciones no tiene más de n × m 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).

Observaciones

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.

Sample session
>>> 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
>>> 
Information
Author
Jordi Delgado (basat en el problema P50250, de Salvador Roura)
Language
Spanish
Translator
Original language
Catalan
Other languages
Catalan
Official solutions
Python
User solutions
Python