메뉴 건너뛰기

문제


시간메모리제출 통과 비율
1초64MB
0
0
0.0%
나의 횟수나의 판정시도 성공 비율
00
0.0%
문제

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_1 = s\)
  • 각 \(j = 1, 2, \ldots, l - 1\)에 대해, 마을 \(v_j\)와 마을 \(v_{j+1}\)은 길로 연결되어 있다.
  • 각 \(j = 1, 2, \ldots, l - 1\)에 대해, \(j\)가 홀수이면 \(v_j < v_{j+1}\), \(j\)가 짝수이면 \(v_j > v_{j+1}\)이 성립한다.

예를 들어 \(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\))
  • 입력되는 값은 모두 정수이다.

부분문제

  1. (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}\)을 잇는 길이 존재한다.
  2. (19점) \(N \le 1{,}000\), \(M \le 1{,}000\)
  3. (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}\)을 잇는 길이 존재한다.
  4. (17점) 각 마을에 대해, 그 마을과 직접 길로 연결된 마을은 많아야 2개이다.
  5. (37점) 추가 제약 조건 없음
출력

다음 형식으로 출력한다.

\(N\)줄 출력한다. \(k\)번째 줄 (\(1 \le k \le N\))에는 \(s = k\)일 때, 어떤 여행 계획을 세워도 도달할 수 없는 마을의 개수를 출력한다.

예시 1
입력
4 4 1 2 1 3 1 4 3 4
출력
0 3 0 3
설명

\(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에는 도달할 수 없다.

예시 2
입력
2 0
출력
1 1
설명

\(s = 1\)일 때, \(v\)로 가능한 수열은 \(v = (1)\)뿐이다. 어떤 여행 계획을 세워도 마을 2에는 도달할 수 없다.

\(s = 2\)일 때, \(v\)로 가능한 수열은 \(v = (2)\)뿐이다. 어떤 여행 계획을 세워도 마을 1에는 도달할 수 없다.

예시 3
입력
4 3 1 3 3 4 2 4
출력
2 1 1 3
예시 4
입력
6 6 1 4 1 3 2 4 2 5 3 6 5 6
출력
1 1 3 5 3 5
위로