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