삼각 그래프

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

요약
N개 행과 3개 열로 이루어진 층상 DAG에서 위쪽 중앙에서 아래쪽 중앙까지 최소 정점 비용 경로를 구한다.
난이도

보통10점 중 4점

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

문제

삼각 그래프는 사이클이 없는 방향 그래프로, N≥2N \ge 2개의 행과 33개의 열로 이루어진다. 열은 왼쪽부터 11번(왼쪽), 22번(가운데), 33번(오른쪽)이라 부르고, ii번째 행 jj번째 열의 정점을 (i,j)(i, j)로 나타낸다.

보통의 그래프와 달리 비용은 간선이 아니라 정점에 있다. 어떤 경로의 비용은 그 경로가 지나간 모든 정점의 비용을 더한 값이다.

목표는 가장 위쪽 가운데 정점 (1,2)(1, 2)에서 가장 아래쪽 가운데 정점 (N,2)(N, 2)로 가는 최소 비용 경로를 찾는 것이다.

삼각 그래프의 방향 간선은 항상 다음과 같이 연결되어 있다.

  • 같은 행 안에서: 모든 행 ii에 대해 (i,1)→(i,2)(i, 1) \to (i, 2)와 (i,2)→(i,3)(i, 2) \to (i, 3).
  • 다음 행으로: 1≤i<N1 \le i < N을 만족하는 모든 행 ii에 대해
    • (i,1)→(i+1,1)(i, 1) \to (i+1, 1), (i,1)→(i+1,2)(i, 1) \to (i+1, 2)
    • (i,2)→(i+1,1)(i, 2) \to (i+1, 1), (i,2)→(i+1,2)(i, 2) \to (i+1, 2), (i,2)→(i+1,3)(i, 2) \to (i+1, 3)
    • (i,3)→(i+1,2)(i, 3) \to (i+1, 2), (i,3)→(i+1,3)(i, 3) \to (i+1, 3)

예를 들어 가운데 열의 비용이 위에서부터 7,13,3,67, 13, 3, 6인 그래프에서, 아래로만 내려가는 경로 (1,2)→(2,2)→(3,2)→(4,2)(1,2) \to (2,2) \to (3,2) \to (4,2)의 비용은 7+13+3+6=297 + 13 + 3 + 6 = 29이다.

입력

입력은 여러 개의 테스트 케이스로 이루어진다.

각 테스트 케이스의 첫째 줄에는 그래프의 행의 개수 NN이 주어진다 (2≤N≤100,000)(2 \le N \le 100{,}000). 이어지는 NN개의 줄에는 각 행에 있는 세 정점의 비용이 왼쪽, 가운데, 오른쪽 순서로 주어진다. 모든 비용은 정수이며, 각 비용의 제곱은 1,000,0001{,}000{,}000보다 작다. (따라서 비용은 음수일 수도 있다.)

입력의 마지막 줄에는 입력의 끝을 나타내는 00이 하나 주어진다.

출력

각 테스트 케이스마다 가장 위쪽 가운데 정점에서 가장 아래쪽 가운데 정점으로 가는 최소 비용을 아래 형식에 맞춰 한 줄에 출력한다.

k. n

여기서 kk는 테스트 케이스 번호(11부터 시작)이고, nn은 그 테스트 케이스의 최소 비용이다.

예제2

  1. 예제 1

    입력
    4
    13 7 5
    7 13 6
    14 3 12
    15 6 16
    0
    
    예상 출력
    1. 22
    
  2. 예제 2

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