Laiko ribojimas: 1s
Atminties ribojimas: 64MB
DFS medyje
Duotas šakninis medis - jungus beciklis grafas, kurį sudaro viršūnių ir briaunų. Medžio šaknis yra viršūnė .
Kiekvienai medžio viršūnei jums reikia rasti tris dalykus:
- kas yra viršūnės tėvinė viršūnė;
- koks yra viršūnės gylis (tai yra, atstumas iki šaknies);
- kiek vaikų turi viršūnė .
Įvestis
Pirmoje eilutėje pateiktas natūralusis skaičius () - viršūnių skaičius medyje.
Toliau pateiktos eilučių, kuriose pateikta po du skaičius ir (), kurie reiškia, kad medyje yra briauna tarp viršūnių ir .
Išvestis
Išveskite eilučių, kur -tojoje jų būtų trys skaičiai: -tosios viršūnės tėvinė viršūnė, -tosios viršūnės gylis ir vaikų skaičius.
Pastaba. Kadangi viršūnė yra šaknis, tai tėvinės viršūnės ji neturi - vietoj jos tėvinės viršūnės išveskite tiesiog skaičių 0 (žr. pavyzdžius).
Pavyzdžiai
Duomenys | Rezultatai | Paaiškinimai |
---|---|---|
6 3 5 3 1 1 4 6 3 3 2 |
0 0 2 3 2 0 1 1 3 1 1 0 3 2 0 3 2 0 |
Medis atrodo taip: |