Programozás‎ > ‎Feladatok‎ > ‎

Képzés

Egy vállalat fel akarja készíteni a dolgozóit egy új szoftver használatára. Arra nincs lehetőség, hogy minden dolgozó részt vegyen kiképzésen. Ezért az igazgató elhatározta, hogy a lehető legkevesebb dolgozó vegyen részt a képzésen, de teljesüljön, hogy ha egy dolgozó nem vett részt a képzésen, akkor a közvetlen főnöke igen. A vállalat hierarchikus felépítésű, tehát az igazgató kivételével (akinek nincs főnöke), minden dolgozónak pontosan egy közvetlen főnöke van, továbbá az igazgató mindenkinek főnöke (közvetlenül vagy közvetve). 

Feladat

Készíts programot, ami kiszámolja, hogy legkevesebb hány dolgozónak kell részt vennie képzésen, és meg is adja, hogy kiknek.

Bemenet

Az első sorban a dolgozók N száma van (1<= N<=100000). A második sorban N szám van, az i. szám az i. dolgozó közvetlen főnökének sorszáma. Az igazgatónak nincs főnöke, ezért az első szám mindig 0, az igazgató mindig az egyes sorszámú.

Kimenet

A kimenet az első sora megadja, hogy hány embernek kell a képzésben részt vennie, a második pedig felsorolja a képzésre küldött dolgozók sorszámát. 

Példa

Bemenet  Kimenet
12
0 1 1 1 2 12 12 12 3 9 10 3
5
1 2 3 10 12


Tesztadatok

Címkék

A feladat forrása: NTOITV 2011, 11-13. évfolyam, 3. forduló
Algoritmusok: