만드는 중입니다

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

비용 증가

시간 제한2초메모리 제한256 MB

요약
각 도로의 통행료를 올렸을 때 수도에서 최단 경로가 사라지는 도시의 수를 도로마다 구한다.
난이도

어려움10점 중 8점

유형
그래프, 최단 경로, DFS, 동적 계획법
정답자
아직 제출이 없습니다

문제

베를란트에는 11번부터 nn번까지 번호가 붙은 nn개의 도시가 있다. 11번 도시는 베를란트의 수도다. 일부 도시 쌍 사이에는 mm개의 양방향 도로가 있다. 도로는 도시에서만 교차할 수 있다. 같은 두 도시 사이에 도로가 두 개 이상 있는 경우는 없고, 도시를 자기 자신과 연결하는 도로도 없다. jj번 도로를 어느 방향으로든 이동하면 c_jc\_j만큼의 세금을 내야 한다. 주어진 mm개의 도로만 이용해 수도에서 모든 도시에 도달할 수 있다.

당신은 배달 회사의 CEO이고, 본사는 수도에 있다. 회사는 베를란트의 모든 도시에 물건을 배달하므로, 각 도시마다 수도에서 그 도시로 가는 경로 중 경로에 있는 모든 도로의 세금 합을 최소로 하는 경로를 하나씩 정했다. 수도에서 도시 kk로 가는 이 경로의 총비용을 d_kd\_k라고 하자.

정부는 정확히 하나의 도로를 정해 (어느 도로인지는 알 수 없다) 그 도로를 이용하는 세금을 올리기로 했다. 그래서 각 도로마다, 그 도로의 세금이 올라갔을 때 영향을 받는 도시가 몇 개인지 알고 싶다. 세금이 올라간 뒤 총비용이 d_kd\_k인 경로를 고를 수 없으면 도시 kk가 영향을 받는다.

입력

첫째 줄에 도시 수와 베를란트의 도로 수를 나타내는 두 정수 nn과 mm이 주어진다 (2≤n≤2⋅1052 \le n \le 2 \cdot 10^{5}, n−1≤m≤2⋅105n - 1 \le m \le 2 \cdot 10^{5}).

다음 mm개 줄에는 공백으로 구분된 세 정수 u_ju\_j, v_jv\_j, c_jc\_j가 주어진다 (1≤u_j,v_j≤n1 \le u\_j, v\_j \le n, 1≤c_j≤1091 \le c\_j \le 10^{9}). 이는 도시 u_ju\_j와 v_jv\_j 사이의 jj번 도로의 초기 세금이 c_jc\_j라는 뜻이다.

같은 두 도시 사이에 도로가 두 개 이상 있는 경우는 없고, 도시를 자기 자신과 연결하는 도로도 없다. 주어진 도로만으로 수도에서 모든 도시에 도달할 수 있다.

출력

mm개의 정수를 한 줄에 하나씩 출력한다. jj번째 정수는 jj번 도로의 비용을 올렸을 때 영향을 받는 도시의 수여야 한다.

예제1

  1. 예제 1

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