아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

안전한 이동

시간 제한3초메모리 제한128 MB

요약
각 목초지 i에 대해, 1번에서 i까지의 유일한 최단 경로에서 마지막 간선을 피하는 최단 시간을 구한다.
난이도

어려움10점 중 8점

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

문제

농장에 그렘린들이 들이닥쳤습니다. 이 짓궂고 요정처럼 생긴 생물들은 소들을 괴롭힙니다. 모든 소는 목초지 11번에 있는 헛간에서 출발해 각자의 목초지로 이동하며, 소 ii는 목초지 11번에서 목초지 ii번으로 갑니다.

각 그렘린은 자신이 노리는 소가 평소에 이용하는 유일한 최단 경로를 알고 있습니다. 그렘린 ii는 목초지 11번에서 목초지 ii번으로 가는 최단 경로의 마지막 간선 한가운데에서 소 ii를 기다립니다.

소들은 괴롭힘을 피하려고, 목초지 11번(헛간)에서 목초지 ii번으로 가되 그 최단 경로의 마지막 간선을 사용하지 않는 가장 빠른 경로를 새로 고릅니다. 각 소 ii에 대해, 그렘린 ii가 지키는 그 간선을 피하면서 목초지 11번에서 목초지 ii번으로 가는 최소 시간을 구하세요.

  • 목초지는 11번부터 NN번까지이며 3≤N≤100,0003 \le N \le 100{,}000 입니다.
  • 길(간선)은 11번부터 MM번까지이며 2≤M≤200,0002 \le M \le 200{,}000 입니다. 모든 길은 양방향입니다.
  • ii번 길은 목초지 aia_i와 bib_i를 잇고, 통과하는 데 tit_i 시간이 걸립니다 (1≤ai,bi≤N1 \le a_i, b_i \le N, 1≤ti≤1,0001 \le t_i \le 1{,}000, ai≠bia_i \ne b_i).
  • 같은 두 목초지를 잇는 길은 최대 하나이며, 자기 자신으로 돌아오는 길은 없습니다.
  • 모든 테스트 데이터에서 목초지 11번에서 목초지 ii번으로 가는 최단 경로는 유일합니다.

예를 들어, 다음과 같은 목초지와 길(대괄호 안의 수는 소요 시간)을 생각해 봅시다.

      1--[2]--2-------+
      |       |       |
     [2]     [1]     [3]
      |       |       |
      +-------3--[4]--4

그렘린이 없을 때의 최단 경로는 다음과 같습니다.

이동최단 경로최단 시간마지막 간선
1 → 21→221→2
1 → 31→321→3
1 → 41→2→452→4

그렘린이 각 최단 경로의 마지막 간선을 지킬 때, 그 간선을 피한 최단 경로는 다음과 같습니다.

이동새 경로새 최단 시간피해야 할 간선
1 → 21→3→231→2
1 → 31→2→331→3
1 → 41→3→462→4

입력

  • 첫째 줄: 공백으로 구분된 두 정수 NN과 MM.
  • 둘째 줄부터 M+1M+1번째 줄까지: 공백으로 구분된 세 정수 aia_i, bib_i, tit_i.

출력

  • N−1N-1개의 줄을 출력합니다. ii번째 줄에는 목초지 11번에서 목초지 i+1i+1번으로 가되, 목초지 11번에서 목초지 i+1i+1번으로 가는 최단 경로의 마지막 간선을 사용하지 않는 경로의 최소 시간을 출력합니다. 그런 경로가 없으면 그 줄에 −1-1만 출력합니다.

예제1

  1. 예제 1

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