Cerința
Tocmai s-a lansat un nou joc de computer. Ești un explorator spațial într-un univers cu N planete, fiecare are un teleportor către o altă planetă însemnând că de pe planeta curentă poți merge cătra planeta unde te poți teleporta. Legăturile sunt unidirecționate. Întrebarea este dacă tu acum ai fi pe planeta i, câte rute de teleportare trebuie să folosești astfel încât să ajungi pe o planetă pe care ai mai fost deja. Trebuie calculată pentru fiecare planetă această valoare.
Date de intrare
Programul citește de la tastatură numărul N iar pe următorul rând N numere, al i-elea număr de pe al doilea rând reprezentând planeta pe care poți ajunge cu 1 teleportare de pe planeta i.
Date de ieșire
Programul va afișa pe ecran N numere naturale, al i-elea număr reprezentând răspunsul pentru a i-a planetă.
Restricții și precizări
1 ≤ N ≤ 200.000.- Problema este gândită în stilul ACM adică totul sau nimic la punctaj, motiv pentru care soluții proaste pot lua multe puncte, însă 100p poate obține doar o sursă corectă și eficientă.
Exemplu:
Intrare
5 2 4 3 1 4
Ieșire
3 3 1 3 4
Explicație
Porndind de pe planeta 1 vom avea trasul 1 -> 2, 2 -> 4, 4 -> 1, în total 3 teleportări.