Ваша задача - определить, является ли график плоским.
График является плоским, если он может быть встроен в плоскость, или, другими словами, если его можно нарисовать без каких-либо пересекающихся ребер.
Входные данные: Вам будет предоставлен неориентированный граф на ваш выбор следующих форматов:
Пограничный список, например
[(0, 1), (0, 2), (0, 3)]
Карта смежности, например
{0: [1, 2, 3], 1:[0], 2:[0], 3:[0]}
Смежная матрица, например
[[0, 1, 1, 1], [1, 0, 0, 0], [1, 0, 0, 0], [1, 0, 0, 0]]
Имена узлов могут быть числами, строками или аналогичными, но выбранный вами формат должен поддерживать произвольный граф. Не помещайте код в имена узлов. Там не будет никаких петель.
Стандартный выбор ввода, включая STDIN, аргументы командной строки и аргументы функций.
Вывод: вы должны вернуть определенный вывод для всех плоских графиков и другой конкретный вывод для всех непланарных графиков.
Стандартный выбор выхода, включая STDOUT, возвращаемое значение функции.
Примеры:
Planar:
[]
[(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)]
непланарный:
[(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)]
Любая функция, которая явно выполняет тестирование на плоскостность или иным образом специально ссылается на плоские вложения, запрещена.
Это код гольф. Пусть победит самый короткий код.