만드는 중입니다

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

두 최단 경로

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

요약
방향 가중치 그래프에서 정점 1부터 각 정점 i까지 간선을 공유하지 않는 두 경로의 최소 비용 합을 구합니다.
난이도

어려움10점 중 8점

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

문제

정점이 NN개, 간선이 MM개인 그래프가 있다. 각 간선에는 방향이 있으며, 음이 아닌 정수 가중치가 주어진다.

모든 2≤i≤N2 \le i \le N에 대해, 1번 정점에서 ii번 정점으로 가는 두 개의 겹치지 않는 경로 중 비용 합의 최솟값을 구하라. 경로가 겹치지 않는다는 것은 같은 간선을 공유하지 않는다는 뜻이다. 경로의 비용은 경로에 속한 간선의 가중치를 모두 더한 값이다.

입력

첫 번째 줄에 테스트 케이스의 수 TCTC가 주어진다. 이후 TCTC개의 테스트 케이스가 새 줄로 구분되어 주어진다.

각 테스트 케이스는 다음과 같이 구성된다.

  • 첫 번째 줄에 정수 NN, MM이 주어진다.
  • 이후 MM개의 줄에 세 정수 uiu_i, viv_i, wiw_i가 주어진다. uiu_i번 정점에서 viv_i번 정점으로 가는 가중치 wiw_i의 간선이 존재한다는 뜻이다.

출력

각 테스트 케이스마다 한 줄에 N−1N-1개의 정수를 출력하라. ii번째 정수는 1번 정점에서 i+1i+1번 정점으로 가는 두 개의 겹치지 않는 경로 중 비용 합의 최솟값이다. 겹치지 않는 두 경로가 존재하지 않으면 -1을 출력하라.

제한

  • 1≤ui,vi≤N1 \le u_i, v_i \le N
  • ui≠viu_i \neq v_i
  • i≠j  ⟺  (ui,vi)≠(uj,vj)i \neq j \iff (u_i, v_i) \neq (u_j, v_j)
  • 0≤wi≤1090 \le w_i \le 10^9
  • 1번 정점에서 모든 정점으로 도달할 수 있다.
  • 한 입력 파일에 대해, NN의 합은 100 000100\,000 이하이다.
  • 한 입력 파일에 대해, MM의 합은 1 000 0001\,000\,000 이하이다.

예제2

  1. 예제 1

    입력
    3
    3 4
    1 2 1
    1 3 2
    2 3 3
    3 2 4
    2 2
    1 2 1
    2 1 0
    5 7
    1 2 4
    2 3 3
    1 3 8
    3 5 3
    4 5 2
    5 4 7
    1 5 1
    
    예상 출력
    7 6
    -1
    -1 15 -1 11
    
  2. 예제 2

    입력
    2
    4 9
    1 2 18
    2 3 1
    3 4 11
    4 3 2
    4 1 30
    3 1 24
    3 2 22
    1 3 18
    2 4 1
    4 5
    1 2 2
    1 3 14
    1 4 4
    2 1 20
    2 3 30
    
    예상 출력
    58 37 48
    -1 46 -1