Cerință
Vârcolacul Marian a hotărât că pe timp de noapte, beciul în care își ține murăturile trebuie închis. Pentru că are multe murături, beciul este format din camere conectate prin muchii (deci beciul are formă de arbore și are rădăcina în ). Inițial, toate camerele sunt deschise.
Într-o operație, Marian poate alege două camere încă deschise și și să închidă toate camerele de pe drumul direct de la la , mai puțin LCA-ul lor.
Pentru ca o operație să fie validă, trebuie respectate următoarele două reguli:
- În fiecare operație, LCA-ul trebuie să fie diferit de și de .
- După fiecare operație, camerele care rămân deschise trebuie să fie în continuare conectate între ele. Mai exact, trebuie să se poată ajunge de la orice cameră rămasă deschisă la oricare alta, deplasându-ne exclusiv prin camere care nu au fost încă închise.
- LCA (Cel mai mic strămoș comun) este definit ca fiind nodul cel mai apropiat de rădăcină de pe drumul direct de la la .
Care este numărul minim de operații astfel încât la final singura cameră deschisă să rămână rădăcina? (Marian va dori să lase o cameră deschisă pentru cazul în care i se va face foame peste noapte).
Date de intrare
Pe prima linie se află numărul natural . Pe următoarea linie se află numere naturale, al -lea număr reprezentând părintele camerei .
Date de ieșire
Dacă acest lucru nu este posibil, se va afișa -1. Altfel, pe prima linie se va afișa , reprezentând numărul minim de operații. Pe următoarele linii se vor afișa două valori și , reprezentând operațiile alese.
Restricții și precizări
- ;
- și ;
- Pentru , se acordă 30 de puncte;
- Pentru determinarea corectă a numărului minim de operații, se acordă 20% din punctajul testului;
- Dacă există mai multe soluții care obțin numărul minim de operații, se va accepta oricare dintre acestea.
Exemplul 1
stdin
3
1 1
stdout
1
2 3
Explicație
Arborele este format din rădăcina , care are doi fii: și .
Alegem și . LCA-ul lor este (care este diferit de și de ).
Drumul direct între și este . Se închid camerele și , excepție făcând LCA-ul ().
Singura cameră rămasă deschisă este , iar condiția de conectivitate este respectată. Numărul minim de operații este .
Exemplul 2
stdin
2
1
stdout
-1
Explicație
Arborele este format din rădăcina și fiul ei . Singura cameră care trebuie închisă este . Nu putem alege două camere deschise și astfel încât LCA-ul să fie diferit de ambele (dacă am alege și , LCA-ul lor ar fi , ceea ce ar încălca prima regulă a operației valide). Astfel, problema nu are soluție.