Sua tarefa é determinar se um gráfico é plano.
Um gráfico é plano se puder ser incorporado no plano ou, em outras palavras, se puder ser desenhado sem arestas de cruzamento.
Entrada: Você receberá um gráfico não direcionado em sua escolha dos seguintes formatos:
Lista de arestas, por exemplo
[(0, 1), (0, 2), (0, 3)]
Mapa de adjacências, por exemplo
{0: [1, 2, 3], 1:[0], 2:[0], 3:[0]}
Matriz adjacente, por exemplo
[[0, 1, 1, 1], [1, 0, 0, 0], [1, 0, 0, 0], [1, 0, 0, 0]]
Os nomes dos nós podem ser números, seqüências de caracteres ou similares, mas o formato escolhido deve poder suportar um gráfico arbitrário. Nenhum código de colocação nos nomes dos nós. Não haverá auto-loops.
Escolha padrão de entrada, incluindo STDIN, argumentos de linha de comando e argumentos de função.
Saída: você deve retornar uma saída específica para todos os gráficos planares e uma saída específica diferente para todos os gráficos não planares.
Escolha padrão de saída, incluindo STDOUT, valor de retorno da função.
Exemplos:
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)]
Não Planar:
[(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)]
Qualquer função que execute explicitamente o teste de planaridade ou faça referência específica a incorporamentos planares não é permitida.
Isso é código de golfe. Que ganhe o código mais curto.