길 걷기
시간 제한2초메모리 제한1024 MB
N명의 학생이 각 칸에서 두 갈래 길 중 하나를 골라 N행 M열 건물 지도를 통과하며, 이미 방문한 건물은 다시 지날 수 없다. 모든 학생이 M열에 도착하는 최소 이동 거리 합을 구한다.
문제
준혁이는 한양대의 지도를 행 열을 가지는 배열로 나타냈다. 배열의 각 칸에는 건물이 있다.
각 건물 을 만족하는 모든 건물은 개의 건물로 이동하는 길이 있다.
- 건물 에서 로 이동한다. 이 길의 길이는 이다.
- 건물 에서 로 이동한다. 이 길의 길이는 이다.
번 열의 모든 건물에는 학생이 위치해 있다. 번째 학생은 에 위치해 있으며 총 명의 학생이 있다. 번째 학생은 건물과 연결되어 있는 길을 지나 최종적으로 번째 열로 이동한다. 번째 학생이 먼저 출발하며 번째 학생이 번째 열의 어떤 건물로 도착했다면 번째 학생이 출발하고, , 번째 학생까지 순서대로 번째 학생은 번째 학생이 번째 열에 도착한 이후 출발한다. 학생들은 새로운 건물을 가는 것을 좋아하기 때문에, 어떤 학생이 이미 방문한 건물로는 이동하지 않는다.
번째 학생까지 모두 도착한 이후 번째 학생이 이동한 길의 길이의 합을 라고 하자. 모든 학생들이 이미 방문한 건물을 방문하지 않고 모두 번째 열에 도착할 수 있는지 구해보고 가능하다면 학생들의 이동 경로를 최적으로 설정하였을 때 의 최솟값을 구해보자.
입력
첫째 줄에 과 이 공백으로 구분되어 주어진다.
이후 개의 줄에 걸쳐 번째 줄에 이 공백으로 구분되어 주어진다.
이후 개의 줄에 걸쳐 번째 줄에 이 공백으로 구분되어 주어진다.
이후 개의 줄에 걸쳐 번째 줄에 이 공백으로 구분되어 주어진다.
이후 개의 줄에 걸쳐 번째 줄에 이 공백으로 구분되어 주어진다.
출력
첫째 줄에 의 최솟값을 출력한다. 만약 모든 학생들이 조건을 만족하며 열에 도달할 수 없다면 -1을 대신 출력한다.