Secret Santa (Hard)

Time limit: 1.5s Memory limit: 256MB Input: Output:

Diferența dintre varianta Easy și Hard a problemei este că pe varianta Hard, numerele de pe bilețelele primite de elevi pot fi și egale, asta însemnând că unii elevi pot să nu primească cadou, iar alții să primeasca mai multe

Cerință

Un grup de NN elevi din clasa 11 Pro Max s-au strâns pentru a organiza Secret Santa. Elevii sunt numerotați, fiecare primind un număr ii astfel încât să nu existe doi elevi care să primească același număr. Fiecare elev ii primește un bilețel pe care se află un număr a[i]a[i], semnificând numărul elevului căruia trebuie să îi cumpere cadou. Pot exista doi elevi care să aibă pe bilețel același elev.
Elevii clasei 11 Pro Max vor să știe care este cel mai mare grup de elevi care pot merge să cumpere cadouri cu condiția să nu existe un elev din grup al cărui elev de pe bilețel să se afle în grup cu el, formal să nu existe doi elevi ii, jj astfel încât a[i]=ja[i] = j.

Date de intrare

Pe prima linie se află numărul natural 2N1062 \leq N \leq 10^6.
Pe a doua linie se află NN numere naturale (1i,a[i]N)(1 \leq i, a[i] \leq N), unde a[i]ia[i] \neq i, reprezentând bilețelele primite de elevii clasei 11 Pro Max.

Date de ieșire

Pe prima linie se va afișa un singur număr natural, reprezentând numărul maxim de elevi ce pot forma un grup.

Restricții și precizări

  • 2N1062 \leq N \leq 10^6
# Punctaj Restricții
0 0 Exemple
1 14 N20N \le 20
2 39 N1000N \le 1000
3 47 fără restricții suplimentare

Exemplu

stdin

4
2 1 1 3

stdout

2

Log in or sign up to be able to send submissions!