Вступ
У цьому виклику вам надається спрямований графік із самозаймами, а ваше завдання - перетворити його у непрямий графік без самокрут.
Вхідні дані
Ваш вхід - це спрямований графік з набором вершин {0, 1, ..., n-1}
для якогось натурального числа n ≥ 0
(або {1, 2, ..., n}
якщо ви використовуєте індексацію на основі 1). Графік подається у вигляді n
списку довжин, L
де L[i]
є список зовнішніх сусідів вершин i
. Наприклад, список [[0,1],[0],[1,0,3],[]]
представляє графік
.-.
| v
'-0<--2-->3
^ |
| |
v |
1<--'
Зверніть увагу, що списки сусідів не обов'язково упорядковуються, але вони гарантовано не копіюються.
Вихідні дані
Ваш вихід - це інший графік у тому ж форматі, що і вхід, отриманий з нього наступним чином.
- Видаліть усі петлі.
- До кожного краю
u -> v
, що залишився , додайте перевернутий край,v -> u
якщо його вже немає.
Як і вхідні дані, сусідні списки вихідного графіка можуть бути не упорядкованими, але вони не можуть містити дублікатів. Для вищевказаного графіка правильним буде вихід [[1,2],[0,2],[0,1,3],[2]]
, який представляє графік
0<->2<->3
^ ^
| |
v |
1<--'
Правила
Ви можете використовувати індексацію на основі 0 або 1 на графіках. Прийнятні як функції, так і повні програми. Виграє найнижчий байт, а стандартні лазівки заборонені.
Випробування
У цих тестових випадках використовується індексація на основі 0; збільшують кожне число у випадку, заснованому на 1. Ці сусідські списки сортуються у порядку зростання, але це не потрібно.
[] -> []
[[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
щойно переключилисьk,Y
наk,b
, тому для запуску цього використовуйте.e-.|f}k@QTUQbkQ