만드는 중입니다

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

호빗, 또는 왕복 여행

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

요약
집에서 출발해 모든 장소를 한 번씩 방문하고 집으로 돌아오는 경로 중 위험도 합이 가장 작은 경로를 구합니다.
난이도

보통10점 중 6점

유형
동적 계획법, 정렬, 구현
정답자
아직 제출이 없습니다

문제

빌보는 평범하지 않은 여행을 마치고 집으로 돌아와, 그 이야기를 《서부 변경의 붉은 책》이라는 제목의 책으로 쓰기로 했다. 여행 중에 그는 안개산맥 아래의 동굴을 찾았고, 숲속 요정들의 감옥에 갇혔으며, 외로운 산에서 용을 만났다. 그 밖에도 여러 곤경을 겪었다.

빌보가 방문한 흥미로운 장소는 모두 nn곳이다. 흥미로운 장소와 빌보의 집은 모두 한 직선 위에 있다. 집은 좌표 00에 있고, ii번째 장소는 집에서 xix_i킬로미터 떨어져 있다. 두 장소 ii와 jj 사이에는 다른 흥미로운 장소를 거치지 않는 숨겨진 길이 하나씩 있다. 이 길의 길이는 ∣xj−xi∣|x_j - x_i|이고, 위험도는 ci,jc_{i,j}이다. ii번째 장소와 집 사이에도 숨겨진 길이 있는데, 길이는 xix_i, 위험도는 00이다.

입력

첫째 줄에 정수 nn이 주어진다 (1≤n≤10001 \le n \le 1000). 둘째 줄에는 nn개의 정수 xix_i가 주어진다 (1≤xi≤1091 \le x_i \le 10^9). xix_i는 ii번째 장소가 집에서 떨어진 거리(킬로미터)이다. 모든 xix_i는 서로 다르다. 이어서 nn개의 줄에 각각 nn개의 정수가 주어진다. ii번째 줄의 jj번째 수는 ci,jc_{i,j}로, 장소 ii와 jj 사이 숨겨진 길의 위험도이다 (0≤ci,j≤1060 \le c_{i,j} \le 10^6, ci,j=cj,ic_{i,j} = c_{j,i}, ci,i=0c_{i,i} = 0).

출력

첫째 줄에 빌보의 여행 길이와 위험도를 공백으로 구분해 출력한다. 둘째 줄에는 빌보가 방문하는 흥미로운 장소의 번호를 방문 순서대로 nn개 출력한다.

예제1

  1. 예제 1

    입력
    3
    1 2 3
    0 10 1
    10 0 1
    1 1 0
    
    예상 출력
    6 2
    1 3 2