만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

소 셔플

면접 대비

시간 제한2초메모리 제한512 MB

요약
각 위치 i의 소가 a_i로 이동하는 함수 그래프에서, 셔플을 몇 번 반복해도 항상 소가 있는 위치의 개수를 구한다.
난이도

보통10점 중 6점

유형
그래프, DFS, 구현, 시뮬레이션
정답자
아직 제출이 없습니다

문제

젖소가 행복하면 우유를 더 많이 낸다고 믿는 농부 존은 헛간에 커다란 디스코 볼을 달고 젖소에게 춤을 가르치려 한다.

유행하는 소 춤을 찾아본 존은 "소 셔플"을 가르치기로 정했다. 소 셔플은 젖소 NN마리(1≤N≤100 0001 \le N \le 100\,000)가 한 줄로 늘어선 다음 셔플을 계속 반복하는 춤이고, 셔플이 한 번 일어날 때마다 줄의 순서가 바뀔 수 있다. 젖소가 자기 자리를 쉽게 찾도록 존은 줄의 자리마다 11번부터 NN번까지 번호를 붙여 두었다. 처음에는 각 자리에 젖소가 한 마리씩 서 있다.

셔플 한 번은 NN개의 수 a1,…,aNa_1, \ldots, a_N으로 정해진다. 셔플이 일어나면 ii번 자리에 있던 젖소는 모두 aia_i번 자리로 옮겨 간다. 각 aia_i는 11 이상 NN 이하다. 모든 젖소가 동시에 새 자리로 옮겨 간다. aia_i가 서로 다르다는 보장은 없어서 여러 젖소가 한 자리에 모일 수 있고, 한 번 같은 자리에 모인 젖소는 남은 셔플 내내 함께 움직인다.

존은 셔플을 몇 번 하든 젖소가 계속 남아 있는 자리가 있다는 것을 알아차렸다. 그런 자리가 몇 개인지 세어 달라.

입력

첫째 줄에 젖소의 수 NN이 주어진다.

둘째 줄에 정수 NN개 a1,…,aNa_1, \ldots, a_N이 공백으로 구분되어 주어진다.

출력

셔플을 몇 번 하든 항상 젖소가 있는 자리의 개수를 한 줄에 출력한다.

예제8

  1. 예제 1

    입력
    4
    3 2 1 3
    
    예상 출력
    3
    
  2. 예제 2

    입력
    1
    1
    
    예상 출력
    1
    
  3. 예제 3

    입력
    2
    2 2
    
    예상 출력
    1
    
  4. 예제 4

    입력
    5
    1 2 3 4 5
    
    예상 출력
    5
    
  5. 예제 5

    입력
    6
    1 1 1 1 1 1
    
    예상 출력
    1
    
  6. 예제 6

    입력
    5
    2 3 4 5 5
    
    예상 출력
    1
    
  7. 예제 7

    입력
    6
    2 3 4 5 6 1
    
    예상 출력
    6
    
  8. 예제 8

    입력
    8
    2 1 2 5 4 5 6 7
    
    예상 출력
    4