Agentes


Submit solution

Points: 100 (partial)
Time limit: 1.0s
Memory limit: 64M

Author:
Problem type
Allowed languages
Ada, BrainF***, C, C#, C++, Dart, Go, Java, JS, Kotlin, Lua, Pascal, Prolog, Python, Swift, VB

En la Agencia de Inteligencia de ByteOCI (BIA) trabajan muchos agentes. Cada uno de ellos tiene la obligación de seguir exactamente a uno de los otros agentes.

El rey Byteasar quiere utilizar tantos agentes como sea posible para una gran operación secreta. Sin embargo, la operación es tan importante que cada agente que tome parte tiene que ser seguido por al menos un agente no involucrado en la operación (la distribución de los agentes de la BIA para seguir a los agentes no cambia).

Escriba un programa que:

  • lea desde la entrada la descripción de a quien cada agente sigue,
  • calcule cuántos agentes pueden ser asignados en la operación de tal forma que cada uno de ellos debe ser seguido por lo menos un agente que no tome parte en la operación.

Entrada

En la primera línea de la entrada aparece un entero positivo n , - el número de agentes, 2 \leq n \leq 1000000. Los agentes son numerados desde 1 hasta n. En las siguientes n líneas aparece la descripción de a quien cada agente sigue. Cada una de estas líneas contiene un entero positivo. Un número a_k situado en la línea k+1 indica, que el agente k sigue al agente \( a_k, 1 \leq k \leq n, 1 \leq a_k \leq n, a_k ≠ k \).

Salida

Su programa debe escribir un solo entero en la primera línea de la salida - el número máximo de agentes que pueden ser asignados para la operación secreta.

Entrada

6              
2               
3      
1               
3      
6     
5

Salida

3

Explicación de ejemplo: Una solución sería utilizar en la operación a los agentes 5, 2 y 3. Ellos estarían controlados por los agentes no involucrados en la operación de la siguiente manera el 1 al 2, el 4 al 3 y el 6 al 5.


Comments

There are no comments at the moment.