명백하고 임박한 위험

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

농부 존(Farmer John)은 바다에 있는 $N$개의 섬 중 한 곳에 잠들어 있다는 전설의 보물을 찾아 배를 타고 항해하고 있습니다. 섬에는 $1$부터 $N$까지 번호가 매겨져 있습니다 ($1 \le N \le 100$).

보물 지도에 따르면, 보물이 나타나게 하려면 지정된 순서대로 $M$개의 섬으로 이루어진 수열 $A_1, A_2, \ldots, A_M$ ($2 \le M \le 10000$)을 따라 이동해야 합니다. 이 경로는 섬 $1$에서 시작하여 섬 $N$에서 끝납니다 (즉, $A_1 = 1$, $A_M = N$). 존은 중간에 다른 섬을 들르거나 같은 섬을 여러 번 방문해도 되지만, 지도가 요구하는 $A_1, A_2, \ldots, A_M$ 방문은 반드시 이 순서대로 이루어져야 합니다.

존은 해적을 피하고자 하며, 모든 섬 쌍 사이의 해적 위험도 $d$ ($0 \le d \le 100000$)를 알고 있습니다. 한 경로의 총 위험도는 그가 지나간 모든 구간의 위험도의 합입니다.

지도의 요구 사항을 만족하면서 보물에 도달하는, 가장 안전한(위험도가 최소인) 경로의 총 위험도를 구하세요.

입력

  • 첫째 줄: 공백으로 구분된 두 정수 $N$과 $M$.
  • 다음 $M$개 줄: $i$번째 줄에는 존이 방문해야 하는 $i$번째 섬 $A_i$가 하나의 정수로 주어집니다 ($A_1 = 1$, $A_M = N$).
  • 그다음 $N$개 줄: $i$번째 줄에는 $N$개의 정수가 주어지며, 그중 $j$번째 정수는 섬 $i$와 섬 $j$ 사이 경로의 위험도입니다. 각 줄의 $i$번째 정수는 항상 $0$입니다.

출력

  • 한 줄에 정수 하나: 보물을 얻기 위해 존이 마주쳐야 하는 최소 총 위험도.

힌트

연속한 두 필수 방문 섬 사이를 반드시 직접 이동할 필요는 없습니다. 다른 섬을 경유하면 더 안전할 수 있습니다. 예를 들어 섬 $1$과 섬 $2$ 사이를 직접 이동하면 위험도가 $5$이지만, $1 \to 3 \to 2$로 가면 $1 + 2 = 3$뿐입니다. 따라서 연속한 각 필수 방문 쌍($1 \to 2$, $2 \to 1$, $1 \to 3$) 사이에서 가장 안전한 경로를 사용하면 총 위험도는 $3 + 3 + 1 = 7$이 됩니다.