우주 정거장 순회
시간 제한1초메모리 제한1024 MB
원형 우주 정거장에서 m개의 창문을 주어진 순서대로 모듈 1에서 출발해 모두 방문하고 돌아오되, 시계 방향과 반시계 방향 이동 거리가 같도록 하는 최소 총 이동 거리를 구한다.
문제
우주비행사 Gustav는 개의 모듈이 원형으로 이어진 우주 정거장에서 근무한다. 모듈 은 모듈 와, 모듈 는 모듈 과 이어지는 식이며, 모듈 은 모듈 과 이어진다. 인접한 두 모듈 사이의 거리는 이다. 인공 중력을 만들기 위해 우주 정거장은 원의 중심을 기준으로 일정한 속도로 회전한다.
정거장이 우주에 있는 지 오래되어 창문 바깥쪽을 닦을 때가 되었다. 제비뽑기로 Gustav가 이 일을 맡게 되었다. 창문은 번부터 번까지 있으며, 번 창문은 번 모듈에 있다. 어떤 이유에서인지 창문은 이 순서대로 닦아야 한다. 정거장의 유일한 출입구는 모듈 에 있다.
모듈 사이를 이동하기 위해 정거장 바깥을 따라 움직이는 로켓 추진 창문용 엘리베이터가 있다. 엘리베이터는 인접한 모듈 사이로만 이동할 수 있으며, 지름길을 이용할 수 없다. Gustav는 모듈 에서 출발해 모든 창문을 돌고 모듈 로 돌아오는 경로를 선택하려 한다. 그러나 두 가지 문제가 있다. 첫째, 엘리베이터의 연료가 한정되어 있어 이동 거리가 최소가 되는 경로를 선택해야 한다. 둘째, 엘리베이터의 움직임이 정거장의 회전에 영향을 주므로 시계 방향과 반시계 방향으로 같은 거리만큼 이동해야 한다.
Gustav가 모듈 에서 출발해 모든 창문을 올바른 순서로 방문하고 모듈 로 돌아오며, 반시계 방향과 시계 방향으로 같은 거리만큼 이동할 때 가능한 최소 이동 거리를 구하라.
입력
첫째 줄에 두 정수 과 이 주어진다. 이는 모듈의 수와 창문의 수이다 ( , ). 둘째 줄에 개의 정수가 주어지며, 각 창문이 있는 모듈의 번호이다 ().
출력
최소 이동 거리를 정수 하나로 출력한다.