Introdução
Nesse desafio, você recebe um gráfico direcionado com auto-loops e sua tarefa é convertê-lo em um gráfico não direcionado sem auto-loops.
Entrada
Sua entrada é um gráfico direcionado com vértice definido {0, 1, ..., n-1}
para algum número natural n ≥ 0
(ou {1, 2, ..., n}
se você usar a indexação baseada em 1). O gráfico é fornecido como uma n
lista de comprimento, L
onde L[i]
está uma lista dos vizinhos externos do vértice i
. Por exemplo, a lista [[0,1],[0],[1,0,3],[]]
representa o gráfico
.-.
| v
'-0<--2-->3
^ |
| |
v |
1<--'
Observe que as listas de vizinhos não são necessariamente ordenadas, mas são garantidas como livres de duplicação.
Resultado
Sua saída é outro gráfico no mesmo formato da entrada, obtido da seguinte forma.
- Exclua todos os auto-loops.
- Para cada aresta restante
u -> v
, adicione a aresta invertida,v -> u
se ainda não estiver presente.
Assim como na entrada, as listas de vizinhos do gráfico de saída podem não estar ordenadas, mas não podem conter duplicatas. Para o gráfico acima, seria uma saída correta [[1,2],[0,2],[0,1,3],[2]]
, que representa o gráfico
0<->2<->3
^ ^
| |
v |
1<--'
Regras
Você pode usar a indexação com base em 0 ou em 1 nos gráficos. Ambas as funções e programas completos são aceitáveis. A menor contagem de bytes vence e as brechas padrão não são permitidas.
Casos de teste
Esses casos de teste usam indexação baseada em 0; incremente cada número no caso baseado em 1. Essas listas de vizinhos são classificadas em ordem crescente, mas não são necessárias.
[] -> []
[[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
foi só mudou a partirk,Y
dek,b
, por assim executar este, o uso.e-.|f}k@QTUQbkQ