Twoim zadaniem jest ustalenie, czy wykres jest płaski.
Wykres jest płaski, jeśli można go osadzić w płaszczyźnie, lub innymi słowy, jeśli można go narysować bez przekraczania krawędzi.
Dane wejściowe: Otrzymasz niebezpośredni wykres w wybranych przez ciebie formatach:
Lista krawędzi, np
[(0, 1), (0, 2), (0, 3)]
Mapa adiacyencji, np
{0: [1, 2, 3], 1:[0], 2:[0], 3:[0]}
Matryca sąsiednia, np
[[0, 1, 1, 1], [1, 0, 0, 0], [1, 0, 0, 0], [1, 0, 0, 0]]
Nazwy węzłów mogą być liczbami, łańcuchami lub podobnymi, ale wybrany format musi obsługiwać dowolny wykres. Brak umieszczania kodu w nazwach węzłów. Nie będzie żadnych pętli własnych.
Standardowy wybór danych wejściowych, w tym STDIN, argumenty wiersza poleceń i argumenty funkcji.
Dane wyjściowe: powinieneś zwrócić określone dane wyjściowe dla wszystkich wykresów płaskich i inne dane wyjściowe dla wszystkich wykresów niepłaskich.
Standardowy wybór wyjścia, w tym STDOUT, wartość zwracana funkcji.
Przykłady:
Planarny:
[]
[(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)]
Nonplanar:
[(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)]
Wszelkie funkcje, które jawnie wykonują testy płaskości lub w inny sposób odnoszą się do osadzania płaskiego, są niedozwolone.
To jest kod golfowy. Niech wygra najkrótszy kod.