Le problème : comptez le nombre de trous dans un polygone connecté. La connectivité du polygone est garantie par la condition que chaque triangle de la triangulation d'entrée partage au moins 1 côté avec un autre triangle et qu'il n'y ait qu'un seul ensemble de triangles connectés.
L'entrée est une liste Lde npoints dans le plan et une liste Tde 3 tuples avec des entrées de 0...n-1. Pour chaque élément Tdu tuple (t_1,t_2,t_3)représente les trois sommets (de la liste L) d'un triangle dans la triangulation. Notez qu'il s'agit d'une triangulation au sens de «triangulation polygonale» , car il n'y aura jamais deux triangles dans Tce chevauchement. Une stipulation supplémentaire est que vous n'aurez pas à assainir l'entrée Let à Tne pas contenir de répétitions.
Exemple 1 : Si L = {{0,0},{1,0},{0,1},{1,2}}et T = {{0,1,2},{1,2,3}}alors le polygone spécifié a un nombre de trous de 0.
Exemple 2 : Si L = {{0,0},{1,0},{2,0},{2,1},{2,2},{1,2},{0,2},{0,1},{.5,.5},{1.5,.5},{1.5,1.5},{.5,1.5}}et T = {{5,6,11},{5,10,11},{4,5,10},{3,8,10},{2,3,9},{2,8,9},{1,2,8},{0,1,8},{0,8,11},{0,7,11},{6,7,11},{3,4,10}}alors l'entrée polygonale devrait donner une sortie de 2.

La tâche consiste à écrire le programme (ou la fonction) le plus court qui prend Let Tcomme entrée et renvoie le nombre de trous. Le «gagnant» sera reconnu comme l'entrée avec le moins de caractères (date de fin provisoire le 1er juin).
Exemple de formatage d'entrée (notez l'indexation 0):
0,0
1,0
0,1
1,2
0,1,2
1,2,3
T=1,2,3/1,4,5est connecté mais pas connecté en périphérie)
T=1,2,3/1,2,4/5,6,7/5,6,8,. Chaque triangle partage un bord avec un autre triangle, mais la triangulation est déconnectée