== include(page="template/taskheader" task_id="ierarhie") ==
Andrei tocmai s-a angajat intr-o firma. Pentru a nu face nicio confuzie intre angajati, el si-ar dori sa cunoasca ierarhia din acea firma. Cu toate acestea, atunci cand s-a angajat, lui Andrei i s-a dar doar o lista cu seful direct al fiecarui angajat. Andrei nu se prea descruca cu aceasta lista. Stiind ca angajatii sunt numerotati de la 1 la n, el va roaga sa il ajutati sa afle atat cine este seful tuturor, cat si care sunt subordonatii directi ai fiecarui angajat.
Poveste și cerință...
h2. Date de intrare
Fișierul de intrare $ierarhie.in$ contine pe prima linie numarul natural N, ce reprezinta numarul de angajati. Pe cea de-a doua linie se afla N numere cu semnificatia ca numarul de pe pozitia i este seful direct al angajatului i.
Fișierul de intrare $ierarhie.in$ ...
h2. Date de ieșire
În fișierul de ieșire $ierarhie.out$ se va afisa pe prima linie seful tuturor angajatilor. Pe urmatoarele linii se va afla numarul angajatului si subordonatii sai directi, afișați în ordine crescătoare separati prin cate un spatiu. Daca un angajat nu are niciun subordonat direct, se va trece la angajatul urmator.
În fișierul de ieșire $ierarhie.out$ ...
h2. Restricții
* $1 ≤ N ≤ 2000$
* Daca un angajat nu are niciun sef direct, atunci acestuia i se va atribui numarul 0.
* $... ≤ ... ≤ ...$
h2. Exemplu
table(example).
|_. ierarhie.in |_. ierarhie.out |
| 10
0 1 2 3 3 2 2 1 8 8
| 1
1 2 8
2 3 6 7
3 4 5
8 9 10
| This is some
text written on
multiple lines.
| This is another
text written on
multiple lines.
|
h3. Explicatie
h3. Explicație
Seful tuturor este angajatul cu numarul 1.
Angajatul cu numarul 1 ii are ca subordonati pe angajatii 2 si 8.
Angajatul cu numarul 2 ii are ca subordonati pe angajatii 3, 6 si 8.
Angajatul cu numarul 3 ii are ca subordonati pe angajatii 4 si 5.
Angajatul cu numarul 8 ii are ca subordonati pe angajatii 9 si 10.
...
== include(page="template/taskfooter" task_id="ierarhie") ==
== include(page="template/taskfooter" task_id="ierarhie") ==