DevNight 운영

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

요약
각 컨퍼런스 룸에서 두 번째로 선호하는 커뮤니케이션 룸까지의 최단 거리를 구해 순서대로 출력한다.
난이도

어려움10점 중 8점

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

문제

GIST에서는 2022년부터 매년 가을 'GIST DevNight' (개발자의 밤, Developers' Night) 행사가 열린다. DevNight 행사를 통해 개발자들끼리 정보를 공유하고 친목을 도모할 수 있다. 행사는 컨퍼런스 룸에서 열리는 컨퍼런스와 커뮤니케이션 룸에서 열리는 친목 활동으로 나누어져 있다.

2024년도 GIST DevNight는 정점 NN개와 길이가 있는 양방향 간선 MM개로 구성된 건물에서 열린다. 각각의 정점에는 컨퍼런스 룸 또는 커뮤니케이션 룸 둘 중 하나가 자리잡고 있다. 커뮤니케이션 룸의 수는 KK개이며, 11번 정점부터 KK번 정점까지는 커뮤니케이션 룸이고 K+1K+1번 정점부터 NN번 정점까지는 컨퍼런스 룸이다.

컨퍼런스 하나가 끝나면 개발자들은 커뮤니케이션 룸으로 이동한다. 이때 자신의 위치에 따라 각 커뮤니케이션 룸에 대한 선호도가 달라진다. 모든 사람은 컨퍼런스 룸의 위치로부터 최단 경로의 길이가 짧은 커뮤니케이션 룸을 더 선호하며, 만약 그런 커뮤니케이션 룸이 22개 이상 있으면 정점의 번호가 작은 커뮤니케이션 룸을 더 선호한다.

2023년도 DevNight 때는 개발자들이 가장 선호도가 높은 커뮤니케이션 룸을 이용했다. 그러나 그러다 보니 방 하나에만 지나치게 사람이 많이 모이는 일이 발생하여, 2024년도 DevNight에서는 모든 사람이 두 번째로 선호도가 높은 커뮤니케이션 룸을 이용하도록 정책이 바뀌었다. DevNight 운영자인 당신은 각각의 컨퍼런스 룸에 대하여 그 방에서 컨퍼런스가 끝나면 개발자들은 커뮤니케이션 룸으로 가기 위해 얼마나 걸어가야 하는지 궁금해졌다. 보성이를 도와주는 프로그램을 만들어 보자.

입력

첫째 줄에 정수 N,M,KN, M, K가 공백으로 구분되어 주어진다. (3≤N≤100,000,2≤M≤300,000,2≤K<N3 \leq N \leq 100\\,000, 2 \leq M \leq 300\\,000, 2 \leq K < N)

둘째 줄부터 MM줄에 걸쳐 간선의 정보를 나타내는 세 정수 s,e,ds, e, d가 주어진다. (1≤s,e≤N,s≠e,1≤d≤1061 \leq s, e \leq N, s \neq e, 1 \leq d \leq 10^6) 이는 두 정점 ss와 ee를 잇는 길이 dd의 간선이 존재함을 의미한다.

임의의 두 정점 사이를 잇는 간선은 최대 11개이다. 또 주어진 그래프는 반드시 연결 그래프이다.

출력

K+1K+1 이상 NN 이하의 모든 자연수 xx에 대하여 xx번 정점에 있는 사람이 두 번째로 선호도가 높은 커뮤니케이션 룸까지 가기 위한 최단 경로의 길이를 순서대로 공백으로 구분하여 출력한다. 정답이 32비트 정수 범위를 넘을 수 있음에 주의하시오.

예제1

  1. 예제 1

    입력
    10 15 3
    1 4 10
    1 5 9
    1 9 3
    2 4 1
    2 6 6
    2 7 5
    3 6 2
    3 8 11
    3 9 11
    4 8 4
    5 6 8
    5 10 7
    7 9 11
    7 10 11
    8 10 11
    
    예상 출력
    9 10 6 13 11 11 16