연합
우측 버튼을 눌러 기기를 연결해주세요.
문제 정보
연합
쉬움
유형
프로그래밍
배점
100
참여자
435
정답률
95.6%
17
6

문제


바다 위에 개의 섬이 있다. 섬은 번부터 번까지 차례대로 번호가 붙어 있다. 서로 다른 두 섬 사이를 연결하는 개의 다리도 있다. 모든 다리는 단방향으로만 이동 가능하고, 어떤 두 섬 사이를 잇는 다리는 정방향 하나, 역방향 하나씩 해서 최대 두 개이다.

어느 날, 섬들 사이에 분쟁이 일어났다. 모든 섬들은 세력을 키우기 위해 다른 섬과 연합을 결성하려고 한다. 임의의 두 섬 와 에 대해, 번 섬에서 번 섬으로 직접 이동할 수 있는 다리와 번 섬에서 번 섬으로 직접 이동할 수 있는 다리가 있으면, 두 섬은 연합을 결성한다.
이때, 와 가 연합을 결성하고 와 가 연합을 결성했다면 와  역시 위 조건을 만족하지 않더라도 같은 연합에 속해있는 것으로 본다.

다른 섬과 연합을 결성하지 않은 섬들도 각각 하나의 연합에 속해 있는 것으로 볼 때, 개의 섬 사이에 존재하는 연합의 개수를 구해보자.


예제 설명


첫 번째 예제에서는 정의에 따라 1번 섬과 4번 섬이 연합을 결성한다. 이외에 연합을 결성하는 다른 섬 쌍은 존재하지 않는다.
따라서 [1, 4][2][3] 세 개의 연합이 존재하므로, 3을 출력해야 한다.

두 번째 예제에서는 정의에 따라 1번 섬과 2번 섬1번 섬 3 섬2 섬 3번 섬이 연합을 결성한다.
따라서 [1, 2, 3] 한 개의 연합이 존재하므로, 1을 출력해야 한다.


입력


첫째 줄에 섬의 개수 과 다리의 개수 이 공백을 두고 주어진다.
다음 개의 줄에는 가 공백을 두고 주어진다. 번 섬에서 번 섬으로 가는 다리가 있다는 의미이다.



  • 입력에서 주어지는 모든 수는 정수이다.


출력


개의 섬 사이에 존재하는 연합의 개수를 출력한다.

입/출력 예시
:
공백
:
줄 바꿈
:
예시 1
입력
46
23
41
12
34
14
24
출력
3
예시 2
입력
36
12
13
21
23
31
32
출력
1
⋇ 입출력 형식을 잘 지켜주세요
Q&A
누구나 질문하고 답변할 수 있는 Q&A입니다. 문제를 풀며 어려웠던 부분에 대해 질문해보세요.
이 문제에 관한 질문 (0)