페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#5759

마니또 3s 512MB

문제

마니또는 '매우 가까운 친구, 친밀하다'의 뜻을 갖는 스페인어 'manito'에서 유래한 것으로, 마니또 게임은 상대가 모르게 몰래 도와주고 편지를 보내는 놀이의 일종이다.

정올 마을의 사는 N명의 주민들은 각자 본인이 평소 좋아하던 사람의 마니또가 되어주기로 결심하고, 정보올림피아드 2차대회가 있는 날 밤에 마니또에게 선물을 보냈다.

한 주민이 다른 주민에게 선물을 주고, 그 선물을 받은 주민이 또 다른 주민에게 선물을 주는 식으로 연속되어 결국 처음 주민에게 선물이 되돌아오는 경우 이 경로상에 해당하는 주민들을 행복한 주민 써클이라고 한다.

예를 들어, 주민 A가 주민 B에게 선물을 주고, 주민 B가 주민 C에게, 그리고 주민 C가 다시 주민 A에게 선물을 주는 상황이 이에 해당한다.

각 N명의 주민들의 마니또 상대가 주어졌을 때, 행복한 주민 써클이 몇 쌍 있는지 출력하시오.


입력

첫 번째 줄에 주민의 수 N이 입력된다. (1 \le N \le 1\,000\,000)

두 번째 줄부터 N줄에 걸쳐 a, b가 입력되는데, 이는 주민 a가 주민 b에게 선물을 주었다는 뜻이다. (0 \le a,b \le 1\,000\,000\,000)


출력

행복한 주민 써클이 몇 쌍 있는지 출력하시오.


부분문제

번호 점수 조건
#120점

a,b \le N \le 10

#230점

N \le 5\,000

#350점

추가 제한 없음


예제 #1

7
1 2
2 3
3 4
4 1
5 6
6 5
7 6
2

1->2->3->4->1

5->6->5

이렇게 한 쌍의 행복한 주민 써클이 있다.


예제 #2

7
3 4
5 7
7 4
1 2
2 4
4 7
6 2
1

4->7->4

이렇게 두 쌍의 행복한 주민 써클이 있다.

로그인해야 코드를 작성할 수 있어요.