Rymdpromenad | 프로그래밍의 벗 PivotOJ
PivotOJ

Rymdpromenad

시간 제한: 1000ms메모리 제한: 1024MB출처: Programmeringsolympiaden 2018 — lagerBOJ 20876

문제

Astronauten Gustav tjänstgör på en rymdstation bestående av nn moduler ihopsatta i en cirkel så att modul 11 sitter ihop med modul 22, 22 med 33, o.s.v. (och modul nn sitter ihop med modul 11). Avståndet mellan två närliggande moduler är 11. För att skapa en slags konstgjord gravitation roterar rymdstationen med konstant hastighet runt cirkelns mittpunkt.

Stationen har varit i rymden ett bra tag och det börjar bli dags att putsa utsidan av fönstren. Lotten har fallit på Gustav att göra detta. Det finns mm fönster numrerade från 11 till mm, där fönster nummer ii sitter på modul nummer aia_i. Av någon anledning måste fönstrena putsas i just den här ordningen. Den enda ingången och utgången till stationen finns vid modul 11.

För att ta sig mellan modulerna finns det en raketdriven fönsterhiss som går längs utsidan av stationen. Fönsterhissen kan bara färdas mellan närliggande moduler, och kan alltså inte ta några genvägar. Gustav vill välja en väg från modul 11, runt till alla fönstrena, och tillbaka till modul 11. Tyvärr finns det två problem: dels har hissen begränsat med bränsle, så Gustav måste välja en väg som minimerar avståndet han färdas. Dessutom påverkar hissens rörelser rymdstationens rotation, därför måste den färdas lika mycket medsols som motsols.

Hitta det minsta avståndet Gustav kan färdas så att han börjar vid modul 11, besöker alla fönster i rätt ordning, återvänder till modul 11, och färdas lika mycket motsols som medsols.

입력

Den första raden innehåller två heltal nn och mm: antalet moduler och antalet fönster (3n1053 \leq n \leq 10^5 , 1m1051 \leq m \leq 10^5). Den andra raden innehåller mm heltal, index på fönstren (1ain1 \leq a_i \leq n).

출력

Ett heltal, det minsta avståndet.

예제

예제 1

입력
8 4
2 4 3 6
출력
12

예제 2

입력
5 4
1 2 2 2
출력
2

예제 3

입력
8 5
4 6 8 2 7
출력
16
코드를 제출하려면 로그인하세요.