Написати функцію або програму, яка обробляє блок тексту та повертає новий текст. Виграє найменша дійсна програма.
Кожен рядок у блоці тексту матиме такий формат:
12:34,56
Перше число - це ідентифікатор рядка, два інші розділені комами номери - це посилання на інші рядки.
У тексті введення цифри можуть бути будь-якими цілими числами, що перевищують або дорівнюють 0. Усі числа будуть у кодованому ASCII десятичному значенні без провідних нулів. Не буде дублюючих ідентифікаторів рядків. Не буде посилань на неіснуючі ідентифікатори рядків, хоча можуть бути ідентифікатори рядків, на які немає посилання.
У вихідному тексті найменший рядковий рядок буде переміщений до початку текстового блоку і перенумерований на 0. Будь-які посилання на цей рядок також повинні бути оновлені. Перша посилання на цьому рядку повинна бути 0 або 1. Друга посилання може бути лише 2, якщо перша посилання дорівнює 1. В іншому випадку вона повинна бути 0 або 1.
Усі рядки повинні бути у порядку зростання, що збільшуються (без пропущених чисел). Ви можете мати посилання на рядок n, лише якщо раніше було посилання на рядок n-1 або поточний ідентифікатор рядка n. Не повинно бути рядків, на які не посилаються ідентифікатори нижчих рядків, крім рядка 0. Будь-які такі рядки повинні бути видалені перед кінцевим результатом.
Ви можете припустити, що текст введення завжди у правильному форматі.
Тестовий вхід №1:
45:73,24
78:24,78
89:24,73
73:45,3
72:3,24
3:24,24
24:3,89
Упорядковано:
3:24,24
24:3,89
89:24,73
73:45,3
45:73,24
78:24,78
72:3,24
Перенумеровано:
0:1,1
1:0,2
2:1,3
3:4,0
4:3,1
78:1,78
72:0,1
Для остаточного виведення видалено невпорядковані рядки:
0:1,1
1:0,2
2:1,3
3:4,0
4:3,1
Звичайно, у вашій програмі не повинно дотримуватися цього порядку, просто виправте правильний результат. Вихід повинен бути одним блоком тексту або найближчим еквівалентом вашій мові, тобто жодним символом за прямим виводом символів. Ви можете або повернути його (бажано), або вивести весь блок безпосередньо. Припустимо, що ваш вихід буде переданий іншій функції або програмі.
Тестовий вхід №2
5:2,3
7:3,2
2:4,2
4:2,3
3:4,3
Вихід:
0:1,0
1:0,2
2:1,2
Тестовий вхід №3
7:6,3
3:9,7
9:7,3
2:9,6
6:6,7
Вихід:
0:1,2
1:3,4
2:2,3
3:2,4
4:1,3