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

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

홀짝 제약 최단 경로

면접 대비

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

요약
가중치가 있는 무방향 그래프에서 정점 1로부터 각 정점까지 짝수 비용 경로와 홀수 비용 경로의 최소 비용을 각각 구한다. 정점과 간선을 여러 번 지나도 된다.
난이도

보통10점 중 6점

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

문제

2019년에 연세대학교 최적화 연구실에서는 갑자기 특정 문제에 Parity Constraint(홀짝 제약)을 넣은 상태로 문제를 푸는 것이 유행한 적이 있었고, 졸업하신 김강산 선배도 Parity Constraint 관련 논문을 작성하셨다. 이를 기념하기 위해서 국렬이는 연세대학교 프로그래밍 경진대회에 Parity Constraint 문제를 내기로 하였다.

정점이 N개, 비용이 있는 무방향 간선이 M개 있는 그래프가 주어진다. 모든 정점에는 1부터 N까지 번호가 매겨져 있다. 임의의 정점을 선택했을 때 다른 정점으로 가는 경로는 항상 존재하며, 서로 다른 두 정점 사이에는 최대 한 개의 간선이 존재한다.

정점 1에서 출발해서 다른 정점으로 이동하려고 한다. 이미 지나갔던 정점이나 간선도 다시 지나갈 수 있으며, 지나갈 때마다 비용이 추가된다. 경로를 구성하는 간선의 비용의 합을 편의상 '경로의 비용'이라 정의하자. 경로의 비용이 홀수면 홀수 경로, 짝수면 짝수 경로라고 부르자. 각 정점으로 이동할 때 비용이 최소가 되는 홀수 경로의 비용과 짝수 경로의 비용을 구하려고 한다.

입력

다음과 같이 입력이 주어진다.

N M
u1 v1 w1
. . .
uM vM wM

출력

첫째 줄부터 N개의 줄에 걸쳐, i번째 줄에 1번 정점에서 i번 정점으로 이동하는 최소의 홀수 경로의 비용과, 최소의 짝수 경로의 비용을 공백으로 구분하여 출력한다. 해당 경로가 존재하지 않는 경우 -1을 출력한다.

제한

  • 2 ≤ N ≤ 100,000.
  • 1 ≤ M ≤ 300,000.
  • 1 ≤ ui, vi ≤ N. ui ≠ vi. ui와 vi는 i번째 간선의 양 끝점을 의미한다.
  • 1 ≤ wi ≤ 1,000,000,000. wi는 i번째 간선의 비용을 의미한다.
  • 입력에 주어진 수들은 전부 정수다.

예제4

  1. 예제 1

    입력
    2 1
    1 2 1
    
    예상 출력
    -1 0
    1 -1
    
  2. 예제 2

    입력
    3 2
    1 2 3
    2 3 3
    
    예상 출력
    -1 0
    3 -1
    -1 6
    
  3. 예제 3

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

    입력
    11 23
    10 5 832262475
    4 10 301084042
    4 1 799372953
    4 8 689519369
    5 2 873313484
    6 4 46186948
    8 9 388003582
    2 7 422044725
    5 3 299817881
    11 8 779478862
    11 5 416526224
    11 6 125285000
    1 3 566784345
    10 6 126434276
    11 2 546492450
    5 9 914379895
    3 7 540663871
    7 8 737058872
    6 8 932017467
    1 9 788517162
    11 3 96034563
    8 1 113947346
    2 10 117057067
    
    예상 출력
    1633663809 0
    1031595251 1089051244
    566784345 1066879464
    799372953 834290856
    1366697345 866602226
    845559901 788103908
    1511095969 851006218
    1523810225 113947346
    1780982121 501950928
    971994177 914538184
    970844901 662818908