Un gráfico elegante es un tipo de gráfico simple . Los gráficos elegantes son especiales porque hay una manera de etiquetar todos sus nodos con enteros positivos para que cuando los bordes también se etiqueten con las diferencias de los nodos que se conectan, no haya dos bordes con la misma etiqueta y cada etiqueta hasta el número de bordes es usado
Ejemplo resuelto
Aquí hay un gráfico simple que sospechamos que es un gráfico elegante
Probemos el siguiente etiquetado:
Tenga en cuenta que se nos permite omitir enteros en nuestro etiquetado de nodos. Ahora etiquetamos cada borde con la diferencia positiva entre los nodos que conecta. Para mayor visibilidad, los he etiquetado en rojo.
Cada borde tiene un número único y no queda ningún número entre 1 y 7 (el número de bordes que tenemos). Por lo tanto, nuestro gráfico es elegante.
Tarea
Dado un gráfico, a través de cualquier método razonable de entrada, genera un valor verdadero si es correcto y un valor falso de lo contrario.
Este es el código de golf, por lo que el objetivo es minimizar el recuento de bytes.
Casos de prueba
Aquí los gráficos se representan como una matriz de aristas:
3 nodes:
[(0,1),(0,2),(1,2)]
True
Labeling:
Node 0 -> 0
Node 1 -> 2
Node 2 -> 3
5 nodes:
[(0,1),(0,4),(1,2),(2,3),(3,4)]
False
5 nodes:
[(0,1),(1,2),(2,3),(3,4)]
True
Labeling:
Node 0 -> 0
Node 1 -> 1
Node 2 -> 3
Node 3 -> 6
Node 4 -> 10
9 nodes
[(0,1),(1,2),(1,7),(1,8),(2,3),(2,6),(3,4),(4,5)]
True
Labeling:
Node 0 -> 0
Node 1 -> 1
Node 2 -> 3
Node 3 -> 6
Node 4 -> 10
Node 5 -> 15
Node 6 -> 11
Node 7 -> 7
Node 8 -> 8
5 nodes
[(0,1),(0,2),(1,2),(1,3),(1,4),(3,4)]
False
[(0,1),(1,2),(2,3),(3,4)]
es probablemente un caso marginal notable.
{(k-1,k) : 0 < k < n}
requieren las etiquetas más altas de todos los gráficos con el mismo número de nodos.
n(n+1)/2
como su etiqueta más alta. He añadido tu caso de prueba.