JOI 국은 \(N\)개의 마을과 이를 잇는 \(M\)개의 길로 이루어져 있다. 마을에는 1부터 \(N\)까지, 길에는 1부터 \(M\)까지 번호가 붙어 있다. 길 \(i\) (\(1 \le i \le M\))는 마을 \(A_i\)와 마을 \(B_i\)를 양방향으로 잇는다. \(A_i < B_i\)이며, 두 마을 사이를 잇는 길은 많아야 1개이다. 즉 \(A_i \ne A_j\) 또는 \(B_i \ne B_j\) (\(1 \le i < j \le M\))이다. 비타로는 현재 마을 \(s\)에 있으며, 여행 계획을 세우고 있다. 여행 계획은 비타로가 방문할 마을 번호의 순서를 나타내는 수열 \(v = (v_1, v_2, \ldots)\)로 표현한다. \(v\)는 1 이상 \(N\) 이하의 정수로 이루어진 길이 1 이상의 수열이다. 비타로는 방문 순서에 까다로운 조건이 있어, \(v\)의 길이를 \(l\)이라 할 때 다음을 모두 만족해야 한다.
예를 들어 \(v = (2)\)나 \(v = (1, 4, 1, 5, 3)\)은 세 번째 조건을 만족하지만, \(v = (3, 2)\)는 세 번째 조건을 만족하지 않는다. 비타로는 어떤 여행 계획을 세워도 도달할 수 없는 마을, 즉 위 조건을 모두 만족하는 어떤 수열 \(v\)에도 나타나지 않는 마을이 모두 몇 개인지 궁금해 한다. 현재 비타로가 어느 마을에 있는지는 모르므로, \(s = 1, 2, \ldots, N\) 각각에 대해 비타로의 질문에 대한 답을 구하라. JOI 국의 마을과 길에 대한 정보가 주어졌을 때, \(s = 1, 2, \ldots, N\) 각각에 대해, 어떤 여행 계획을 세워도 도달할 수 없는 마을의 개수를 구하는 프로그램을 작성하라. |
입력은 다음 형식으로 주어진다.
\(N\) \(M\)
\(A_1\) \(B_1\)
\(A_2\) \(B_2\)
\(\vdots\)
\(A_M\) \(B_M\)
제약 조건
- \(1 \le N \le 300{,}000\)
- \(0 \le M \le 300{,}000\)
- \(1 \le A_i < B_i \le N\) (\(1 \le i \le M\))
- \(A_i \ne A_j\) 또는 \(B_i \ne B_j\) (\(1 \le i < j \le M\))
- 입력되는 값은 모두 정수이다.
부분문제
- (12점) \(N \le 1{,}000\), \(M = N - 1\). 또한 \((1, 2, \ldots, N)\)을 나열하여 얻을 수 있는 어떤 순열 \(P = (P_1, P_2, \ldots, P_N)\)이 존재하여, 각 \(i = 1, 2, \ldots, N - 1\)에 대해 \(P_i\)와 \(P_{i+1}\)을 잇는 길이 존재한다.
- (19점) \(N \le 1{,}000\), \(M \le 1{,}000\)
- (15점) \(M = N - 1\). 또한 \((1, 2, \ldots, N)\)을 나열하여 얻을 수 있는 어떤 순열 \(P = (P_1, P_2, \ldots, P_N)\)이 존재하여, 각 \(i = 1, 2, \ldots, N - 1\)에 대해 \(P_i\)와 \(P_{i+1}\)을 잇는 길이 존재한다.
- (17점) 각 마을에 대해, 그 마을과 직접 길로 연결된 마을은 많아야 2개이다.
- (37점) 추가 제약 조건 없음
다음 형식으로 출력한다.
\(N\)줄 출력한다. \(k\)번째 줄 (\(1 \le k \le N\))에는 \(s = k\)일 때, 어떤 여행 계획을 세워도 도달할 수 없는 마을의 개수를 출력한다.
\(s = 1\)일 때, \(v\)로 가능한 수열에는 \(v = (1), (1, 2), (1, 3), (1, 4, 1), (1, 4, 1, 2)\) 등이 있다. 어떤 여행 계획을 세워도 도달할 수 없는 마을은 없다.
\(s = 2\)일 때, \(v\)로 가능한 수열은 \(v = (2)\)뿐이다. 어떤 여행 계획을 세워도 마을 1, 3, 4에는 도달할 수 없다.
\(s = 3\)일 때, \(v\)로 가능한 수열에는 \(v = (3), (3, 4, 1, 2)\) 등이 있다. 어떤 여행 계획을 세워도 도달할 수 없는 마을은 없다.
\(s = 4\)일 때, \(v\)로 가능한 수열은 \(v = (4)\)뿐이다. 어떤 여행 계획을 세워도 마을 1, 2, 3에는 도달할 수 없다.
\(s = 1\)일 때, \(v\)로 가능한 수열은 \(v = (1)\)뿐이다. 어떤 여행 계획을 세워도 마을 2에는 도달할 수 없다.
\(s = 2\)일 때, \(v\)로 가능한 수열은 \(v = (2)\)뿐이다. 어떤 여행 계획을 세워도 마을 1에는 도달할 수 없다.