Introducción
En este desafío, se le proporciona un gráfico dirigido con bucles automáticos, y su tarea es convertirlo en un gráfico no dirigido sin bucles automáticos.
Entrada
Su entrada es un gráfico dirigido con un conjunto de vértices {0, 1, ..., n-1}
para algún número natural n ≥ 0
(o {1, 2, ..., n}
si usa indexación basada en 1). El gráfico se proporciona como una n
lista de longitud L
donde L[i]
es una lista de los vecinos externos del vértice i
. Por ejemplo, la lista [[0,1],[0],[1,0,3],[]]
representa el gráfico
.-.
| v
'-0<--2-->3
^ |
| |
v |
1<--'
Tenga en cuenta que las listas de vecinos no están necesariamente ordenadas, pero se garantiza que no tendrán duplicados.
Salida
Su salida es otro gráfico en el mismo formato que la entrada, que se obtiene de la siguiente manera.
- Eliminar todos los bucles automáticos.
- Para cada borde restante
u -> v
, agregue el borde invertidov -> u
si aún no está presente.
Al igual que con la entrada, las listas vecinas del gráfico de salida pueden estar desordenadas, pero no pueden contener duplicados. Para el gráfico anterior, sería una salida correcta [[1,2],[0,2],[0,1,3],[2]]
, que representa el gráfico
0<->2<->3
^ ^
| |
v |
1<--'
Reglas
Puede usar la indexación basada en 0 o en 1 en los gráficos. Ambas funciones y programas completos son aceptables. El conteo de bytes más bajo gana, y las lagunas estándar no se permiten.
Casos de prueba
Estos casos de prueba usan indexación basada en 0; incremente cada número en el caso basado en 1. Estas listas de vecinos se ordenan en orden ascendente, pero no es obligatorio.
[] -> []
[[0]] -> [[]]
[[],[0,1]] -> [[1],[0]]
[[0,1],[]] -> [[1],[0]]
[[0,1],[0],[1,0,3],[]] -> [[1,2],[0,2],[0,1,3],[2]]
[[3],[],[5],[3],[1,3],[4]] -> [[3],[4],[5],[0,4],[1,3,5],[2,4]]
[[0,1],[6],[],[3],[3],[1],[4,2]] -> [[1],[0,5,6],[6],[4],[3,6],[1],[1,2,4]]
[[6],[0,5,1],[5,4],[3,5],[4],[5,6],[0,3]] -> [[1,6],[0,5],[4,5],[5,6],[2],[1,2,3,6],[0,3,5]]
[[1,0],[5,1],[5],[1],[5,7],[7,1],[],[1]] -> [[1],[0,3,5,7],[5],[1],[5,7],[1,2,4,7],[],[1,4,5]]
[[2,8,0,9],[5,2,3,4],[0,2],[3,7,4],[8,1,2],[5,1,9,2],[6,9],[6,5,2,9,0],[9,1,2,0],[3,9]] -> [[2,7,8,9],[2,3,4,5,8],[0,1,4,5,7,8],[1,4,7,9],[1,2,3,8],[1,2,7,9],[7,9],[0,2,3,5,6,9],[0,1,2,4,9],[0,3,5,6,7,8]]
.e
solo se cambió dek,Y
ak,b
, así que para ejecutar esto, use.e-.|f}k@QTUQbkQ