Votre tâche consiste à déterminer si un graphique est plan.
Un graphique est plan s'il peut être intégré dans le plan, ou en d'autres termes s'il peut être dessiné sans arêtes croisées.
Entrée: Vous recevrez un graphique non orienté dans votre choix des formats suivants:
Liste des bords, par exemple
[(0, 1), (0, 2), (0, 3)]
Carte d'adjacence, par exemple
{0: [1, 2, 3], 1:[0], 2:[0], 3:[0]}
Matrice adjacente, par exemple
[[0, 1, 1, 1], [1, 0, 0, 0], [1, 0, 0, 0], [1, 0, 0, 0]]
Les noms de nœuds peuvent être des nombres, des chaînes ou similaires, mais le format que vous avez choisi doit pouvoir prendre en charge un graphique arbitraire. Pas de mise de code dans les noms de noeud. Il n'y aura pas de boucles auto.
Choix standard d'entrée, y compris STDIN, les arguments de ligne de commande et les arguments de fonction.
Sortie: vous devez renvoyer une sortie spécifique pour tous les graphiques planaires et une sortie spécifique différente pour tous les graphiques non plans.
Choix standard de sortie, y compris STDOUT, valeur de retour de fonction.
Exemples:
Planaire:
[]
[(0,1), (0,2), (0,3), (0,4), (0,5), (0,6)]
[(0,1), (0,2), (0,3), (1,2), (1,3), (2,3)]
[(0,2), (0,3), (0,4), (0,5), (1,2), (1,3), (1,4), (1,5), (2,3),
(2,5), (3,4), (4,5)]
Non planaire:
[(0,1), (0,2), (0,3), (0,4), (1,2), (1,3), (1,4), (2,3), (2,4), (3,4)]
[(0,3), (0,4), (0,5), (1,3), (1,4), (1,5), (2,3), (2,4), (2,5)]
[(0,3), (0,4), (0,6), (1,3), (1,4), (1,5), (2,3), (2,4), (2,5), (5,6),
(7,8), (8,9), (7,9)]
Toute fonction qui effectue explicitement des tests de planéité ou fait autrement référence spécifiquement aux incorporations planaires est interdite.
C'est le golf de code. Que le code le plus court l'emporte.