시간 제한
메모리 제한
시간 제한
3초
메모리 제한
128 MB
한 회사가 여러 도시에 흩어져 있는 고객에게 서비스를 제공한다. 회사에는 서비스 직원이 세 명 있다. 어떤 위치에서 요청이 들어오면, 그 위치에 직원이 이미 있지 않은 한, 직원 한 명이 자신의 현재 위치에서 요청이 발생한 위치로 이동하여 요청을 처리해야 한다. 한 순간에는 오직 한 명만 이동할 수 있으며, 직원들은 요청이 있을 때만 이동하고 두 명이 같은 위치에 있을 수는 없다.
한 직원을 위치 p에서 위치 q로 이동시키는 데에는 주어진 비용 C(p,q)가 든다. 이 비용 함수는 대칭이 아닐 수 있지만, 이동하지 않는 비용은 0이다. 즉 C(p,p)=0이다. 회사는 받은 요청을 반드시 들어온 순서대로(선착순으로) 처리해야 한다.
주어진 요청 순서를 처리하는 총 비용이 최소가 되도록 각 요청을 어느 직원이 처리할지 정할 때, 그 최소 총 비용을 구하라.
첫째 줄에 두 정수 L과 N이 주어진다. L(3≤L≤200)은 위치의 수, N(1≤N≤1000)은 요청의 수이다. 위치는 1부터 L까지의 정수로 구분된다.
다음 L개의 줄에는 각각 L개의 음이 아닌 정수가 주어진다. i+1번째 줄의 j번째 수는 비용 C(i,j)이며, 2000보다 작다.
마지막 줄에는 요청 목록을 나타내는 N개의 정수가 주어진다. 각 요청은 요청이 발생한 위치의 번호로 주어진다. 처음에 세 직원은 각각 위치 1, 2, 3에 있다.
요청 순서 전체를 처리하는 데 드는 최소 총 비용 M을 하나의 정수로 출력한다.