Fora de Perill T58556


Statement
 

pdf   zip

thehtml

Escriure una funció caselles_segures(n,m,lst) tal que donades les dimensions d’un tauler d’escacs n × m i una llista lst de posicions on podem trobar torres (les peces d’escacs), retorni quantes caselles segures, fora de perill, hi ha al tauler. En aquest problema, diem que una casella és segura o està fora de perill si no està ocupada ni està amenaçada per cap torre. Les posicions venen donades per tuples de dos elements (f,c) on 1 ≤ fn, 1 ≤ cm.

Per exemple, si fem:

caselles_segures(4,6,[(1,2),(1,4),(2,4),(4,4),(4,6)])

el resultat ha de ser 3 (si us ho dibuixeu ho veureu millor).

Teniu més exemples en els jocs de proves públics.

Entrada

La funció té dos enters n ≥ 1 i m ≥ 1 i una llista de posicions com a paràmetres.

Se’ns garanteix que la llista de posicions no té més de n × m elements, totes les posicions són correctes (estan dins el tauler) i no hi ha posicions repetides (és a dir, si la llista té t elements, vol dir que hi ha t torres diferents al tauler).

Observacions

No podeu fer servir cap mòdul addicional.

Un cop definida la funció, en provar-la al REPL de Python us hauria de sortir el mateix que podeu observar més avall.

Sample session
>>> caselles_segures(4,6,[(1,2),(1,4),(2,4),(4,4),(4,6)])
3
>>> caselles_segures(1,1,[(1,1)])
0
>>> caselles_segures(2,3,[(1,1)])
2
>>> caselles_segures(2,3,[(1,1),(2,3),(2,1)])
0
>>> caselles_segures(200,100,[(1,1),(200,1),(1,100),(200,100)])
19404
>>> 
Information
Author
Jordi Delgado (basat en el problema P50250, de Salvador Roura)
Language
Catalan
Other languages
Spanish
Official solutions
Python
User solutions
Python