아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

우주 정거장 순회

시간 제한1초메모리 제한1024 MB

요약
원형 우주 정거장에서 m개의 창문을 주어진 순서대로 모듈 1에서 출발해 모두 방문하고 돌아오되, 시계 방향과 반시계 방향 이동 거리가 같도록 하는 최소 총 이동 거리를 구한다.
난이도

어려움10점 중 8점

유형
동적 계획법, 누적 합, 그리디, 구현
정답자
아직 제출이 없습니다

문제

우주비행사 Gustav는 nn개의 모듈이 원형으로 이어진 우주 정거장에서 근무한다. 모듈 11은 모듈 22와, 모듈 22는 모듈 33과 이어지는 식이며, 모듈 nn은 모듈 11과 이어진다. 인접한 두 모듈 사이의 거리는 11이다. 인공 중력을 만들기 위해 우주 정거장은 원의 중심을 기준으로 일정한 속도로 회전한다.

정거장이 우주에 있는 지 오래되어 창문 바깥쪽을 닦을 때가 되었다. 제비뽑기로 Gustav가 이 일을 맡게 되었다. 창문은 11번부터 mm번까지 있으며, ii번 창문은 aia_i번 모듈에 있다. 어떤 이유에서인지 창문은 이 순서대로 닦아야 한다. 정거장의 유일한 출입구는 모듈 11에 있다.

모듈 사이를 이동하기 위해 정거장 바깥을 따라 움직이는 로켓 추진 창문용 엘리베이터가 있다. 엘리베이터는 인접한 모듈 사이로만 이동할 수 있으며, 지름길을 이용할 수 없다. Gustav는 모듈 11에서 출발해 모든 창문을 돌고 모듈 11로 돌아오는 경로를 선택하려 한다. 그러나 두 가지 문제가 있다. 첫째, 엘리베이터의 연료가 한정되어 있어 이동 거리가 최소가 되는 경로를 선택해야 한다. 둘째, 엘리베이터의 움직임이 정거장의 회전에 영향을 주므로 시계 방향과 반시계 방향으로 같은 거리만큼 이동해야 한다.

Gustav가 모듈 11에서 출발해 모든 창문을 올바른 순서로 방문하고 모듈 11로 돌아오며, 반시계 방향과 시계 방향으로 같은 거리만큼 이동할 때 가능한 최소 이동 거리를 구하라.

입력

첫째 줄에 두 정수 nn과 mm이 주어진다. 이는 모듈의 수와 창문의 수이다 (3≤n≤1053 \leq n \leq 10^5 , 1≤m≤1051 \leq m \leq 10^5). 둘째 줄에 mm개의 정수가 주어지며, 각 창문이 있는 모듈의 번호이다 (1≤ai≤n1 \leq a_i \leq n).

출력

최소 이동 거리를 정수 하나로 출력한다.

예제3

  1. 예제 1

    입력
    8 4
    2 4 3 6
    
    예상 출력
    12
    
  2. 예제 2

    입력
    5 4
    1 2 2 2
    
    예상 출력
    2
    
  3. 예제 3

    입력
    8 5
    4 6 8 2 7
    
    예상 출력
    16