만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

통신망

시간 제한2.5초메모리 제한1024 MB

요약
각 링크를 끊었을 때 네트워크를 분리하는 위험한 컴퓨터의 수를 링크마다 구합니다.
난이도

보통10점 중 7점

유형
그래프, DFS, 트리
정답자
아직 제출이 없습니다

문제

통신망은 NN개의 컴퓨터와 MM개의 회선으로 구성된다. 컴퓨터는 11번부터 NN번까지 번호가 붙어 있다. 회선 하나는 서로 다른 22개의 컴퓨터가 양방향으로 통신할 수 있도록 한다. 통신망의 어떤 두 컴퓨터든 하나 이상의 회선을 거쳐 통신할 수 있으면 통신망은 연결되어 있다고 한다. 통신할 수 없는 컴퓨터의 쌍이 하나라도 있으면 통신망은 끊어져 있다고 한다.

회선 cc의 위험도는 다음과 같이 정의한다.

  • 통신망의 각 컴퓨터 ii에 대해, 컴퓨터 ii를 제거했을 때 남은 통신망이 끊어져 있으면 컴퓨터 ii를 위험한 컴퓨터라고 한다.
  • 초기 통신망에서 cc를 제거했을 때, 위험한 컴퓨터의 개수를 cc의 위험도로 한다.

입력

첫째 줄에 두 정수 NN과 MM이 주어진다. (2≤N≤250 0002 \le N \le 250\,000, 1≤M≤1 000 0001 \le M \le 1\,000\,000)

다음 MM개의 줄에는 회선의 정보가 주어진다. ii번째 줄에는 xix_i, yiy_i가 주어지며, 이는 ii번 회선이 xix_i번 컴퓨터와 yiy_i번 컴퓨터를 연결한다는 뜻이다. (1≤xi,yi≤N1 \le x_i, y_i \le N, xi≠yix_i \neq y_i)

출력

MM개의 줄을 출력한다. ii번째 줄에는 ii번 회선의 위험도를 출력한다.

제한

  • 2≤N≤250 0002 \le N \le 250\,000
  • 1≤M≤1 000 0001 \le M \le 1\,000\,000
  • 한 회선은 서로 다른 두 컴퓨터를 연결한다.
  • 같은 쌍의 컴퓨터를 연결하는 회선이 여러 개 있을 수 있다.
  • 초기 통신망은 연결되어 있다.

예제1

  1. 예제 1

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