통행료

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

요약
도로가 하루에 하나씩 통행료 1원이 된다. 매일이 지난 뒤 모든 건물 쌍의 최단 경로 통행료 합을 구한다.
난이도

보통10점 중 7점

유형
그래프, 최단 경로, BFS, 유니온 파인드
정답자
아직 제출이 없습니다

문제

KOI 도시는 11번 건물부터 NN번 건물까지 NN개의 건물로 이루어져 있으며, 11번 도로부터 MM번 도로까지 MM개의 양방향 도로가 각 건물을 연결하고 있다. 각 도로는 서로 다른 두 건물을 연결하며, 이 중 ii번 도로는 u_iu\_i번 건물과 v_iv\_i번 건물을 양방향으로 연결한다. 이때, 임의의 두 건물 사이를 도로들을 이용해 오갈 수 있다.

원래 KOI 도시의 각 도로는 무료로 이용할 수 있었다. 즉, 모든 도로의 통행료는 00원이었다. 그러나, KOI 도시의 시장인 정올이는 KOI 도시의 재정난을 극복하기 위해, MM일에 걸쳐 각 도로에 통행료를 부과하려고 한다. 구체적으로, 정올이는 ii번째 날에 ii번 도로의 통행료를 11원으로 변경한다. 이에 따라, MM일이 모두 지나면 모든 도로의 통행료는 11원이 될 것이다.

aa번 건물과 bb번 건물 사이의 최소 이동 비용을 aa번 건물에서 bb번 건물로 이동하기 위해 필요한 총 통행료의 최솟값으로 정의하고, f(a,b)f(a, b)로 표기하자. a=ba = b라면 f(a,b)=0f(a, b) = 0이다.

도로망의 총 비용은, 가능한 모든 두 건물의 쌍 사이의 최소 이동 비용의 합으로 정의한다. 즉, 모든 1≤a,b≤N1 ≤ a, b ≤ N인 자연수 aa와 bb에 대해 f(a,b)f(a, b)의 값을 계산한 후 이를 모두 합친 값이 도로망의 총 비용이다. 이를 수학 기호로 표기하면, 도로망의 총 비용은 ∑_a=1N∑_b=1Nf(a,b)\sum\_{a=1}^{N}\sum\_{b=1}^{N}f(a, b)가 된다.

정올이는 통행료 변화가 시민들에게 어떤 영향을 줄지 분석하려고 한다. 당신은 정올이를 도와, ii번째 날이 끝난 이후 도로망의 총 비용을 계산해야 한다.

입력

첫 번째 줄에 NN과 MM이 공백으로 구분되어 주어진다.

다음 MM개의 줄에는 도로의 정보가 주어진다. 이 중 ii (1≤i≤M1 ≤ i ≤ M)번째 줄에는 두 정수 u_iu\_i, v_iv\_i가 공백으로 구분되어 주어진다.

출력

총 MM개의 줄을 출력한다. 이 중 ii (1≤i≤M1 ≤ i ≤ M) 번째 줄에는, ii번째 날이 끝난 이후 도로망의 총 비용을 출력한다.

제한

  • 주어지는 모든 수는 정수이다.
  • 2≤N≤5002 ≤ N ≤ 500
  • N−1≤M≤N(N−1)2N − 1 ≤ M ≤ \frac{N(N-1)}{2}
  • 1≤i≤M1 ≤ i ≤ M에 대해서, u_i≠v_iu\_i ≠ v\_i를 만족한다.
  • 1≤i≤M1 ≤ i ≤ M에 대해서, 1≤u_i,v_i≤N1 ≤ u\_i , v\_i ≤ N을 만족한다.
  • 임의의 서로 다른 두 건물을 잇는 도로는 최대 하나이다.
  • 임의의 두 건물 사이를 도로들을 이용해 오갈 수 있다.

예제2

  1. 예제 1

    입력
    4 4
    1 2
    2 3
    3 1
    3 4
    
    예상 출력
    0
    6
    10
    16
    
  2. 예제 2

    입력
    4 4
    2 3
    3 1
    3 4
    1 2
    
    예상 출력
    0
    8
    14
    16