아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

네트워크

시간 제한1초메모리 제한128 MB

요약
연결된 무방향 그래프가 주어질 때, 제거하면 다른 두 정점이 서로 도달할 수 없게 되는 단절점의 개수를 센다. 입력은 줄 단위로 주어지며 0으로 끝난다.
난이도

보통10점 중 6점

유형
그래프, DFS, 구현, 완전 탐색
정답자
아직 제출이 없습니다

문제

한 전화 회사가 새로운 전화 케이블 네트워크를 구축하고 있다. 이 네트워크는 11번부터 NN번까지 정수로 번호가 매겨진 여러 장소를 연결하며, 서로 다른 장소는 서로 다른 번호를 가진다. 모든 케이블은 양방향이고 정확히 두 장소를 직접 잇는다. 각 장소에는 케이블이 모이는 전화 교환기가 하나씩 있다.

임의의 장소에서 다른 모든 장소로 케이블을 따라 도달할 수 있다. 다만 반드시 직접 연결된 케이블을 통할 필요는 없으며, 여러 교환기를 거쳐 갈 수도 있다. 즉, 네트워크는 연결되어 있다.

때때로 어떤 장소에 정전이 발생해 그 교환기가 동작을 멈춘다. 이때 고장 난 장소에 도달할 수 없게 될 뿐만 아니라, 다른 두 장소끼리도 서로 도달하지 못하게 되는 경우가 생길 수 있다. 한 장소의 고장이 다른 두 장소를 서로 도달할 수 없게 만들 때, 그 장소를 임계 장소라고 부른다.

각 네트워크에 대해 임계 장소의 개수를 구하라.

입력

입력은 여러 개의 블록으로 이루어지며, 각 블록은 하나의 네트워크를 설명한다.

블록의 첫 줄에는 장소의 개수 NN이 주어진다 (N<100N < 100). 이어지는 (최대 NN개의) 각 줄은 한 장소의 번호로 시작하고, 그 뒤에 그 장소와 직접 케이블로 연결된 몇몇 장소의 번호가 이어진다. 이 줄들은 네트워크의 모든 직접 연결을 담고 있으며, 각 케이블은 적어도 한 줄에는 나타난다. 한 줄의 모든 수는 하나의 공백으로 구분된다.

각 블록은 00 하나만 있는 줄로 끝난다. 전체 입력은 첫 줄이 N=0N = 0인 블록으로 끝나며, 이 마지막 블록은 처리하지 않는다.

출력

마지막 블록을 제외한 각 블록에 대해, 그 네트워크의 임계 장소 개수를 한 줄에 하나씩 출력한다.

힌트

한 장소의 이웃들은 그 장소와 같은 입력 줄에 나열되므로 줄의 경계가 중요하다. 따라서 입력을 한 줄씩 읽어야 한다. 각 줄을 쉽게 구분할 수 있도록, 줄 끝 앞에는 여분의 공백이 없다.

예제1

  1. 예제 1

    입력
    5
    5 1 2 3 4
    0
    6
    2 1 3
    5 4 6 2
    0
    0
    
    예상 출력
    1
    2