만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

힘센 Jovsi

면접 대비

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

요약
막대 l개가 일렬로 놓인 도로에서 n개의 소포를 각각 a_i 막대에서 b_i 막대로 옮깁니다. 시작점과 끝점을 자유롭게 정할 때 최소 이동 거리를 구합니다.
난이도

보통10점 중 6점

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

문제

Jovsi는 힘이 센 소년이다. 어릴 때부터 기관총을 좋아해서 자주 흉내를 냈다. 다만 이유는 모르겠지만 trtrtrt나 bambambam이 아니라 acacacacac이라고 외쳤다.

Malnar 씨는 Jovsi의 힘에 감탄해서, 그를 이상적이고 아주 저렴한 육체노동자로 본다. Malnar 씨는 일이 자주 있어서 문제 번역 같은 중요한 일을 할 틈이 없다. 그래서 자기 일을 힘센 Jovsi에게 맡기기로 했다.

하루 동안 Malnar 씨는 길을 따라 nn개의 일을 처리해야 한다. 길에는 ll개의 술집이 있고, 길의 시작부터 끝까지 11부터 ll까지 번호가 붙어 있다. 인접한 두 술집은 정확히 11미터 떨어져 있다. Malnar 씨의 일은 각각 한 술집에서 중요한 패키지를 가져와 다른 술집까지 가져다주는 것이다.

Malnar 씨는 그날 해야 할 일을 모두 미리 알고 있으며, 그 목록을 Jovsi에게 준다. 일을 처리하는 순서는 상관없다.

Jovsi는 힘이 세서 중요한 패키지를 몇 개든 한꺼번에 운반할 수 있다.

Jovsi는 힘도 세고 머리도 좋아서, 모든 일을 처리하면서 전체 이동 거리를 가장 짧게 만들고 싶어 한다. 첫 패키지를 어느 술집에서 받는지는 중요하지 않다(Uber가 그곳까지 데려다 주기 때문이다). 마지막 패키지를 어느 술집에 내려놓는지도 중요하지 않다(Uber가 그곳에서 데려가기 때문이다).

Jovsi는 힘도 세고 똑똑하지만 프로그래밍을 할 줄 모른다. 그래서 그 최소 거리를 구하는 프로그램을 작성해 달라고 부탁했다.

입력

첫 줄에 자연수 ll(1≤l≤1091 \le l \le 10^9)과 nn(1≤n≤1051 \le n \le 10^5)이 주어진다. 이어지는 nn개의 줄에는 각각 두 수 aia_i와 bib_i(1≤ai,bi≤l1 \le a_i, b_i \le l, ai≠bia_i \ne b_i)가 주어진다. 이는 ii번째 일이 술집 aia_i에서 패키지를 가져와 술집 bib_i까지 가져다주는 일이라는 뜻이다.

출력

문제에서 구하라고 한 최소 거리를 한 줄에 출력한다.

힌트

첫 번째 테스트의 경로는 다음과 같다.

  • 술집 2에서 출발해 첫 패키지를 가져온다.
  • 술집 1에 도착해 술집 2의 패키지를 내려놓고, 새 패키지를 가져온다.
  • 술집 3에 도착해 새 패키지를 가져온다.
  • 술집 4에 도착해 술집 1의 패키지를 내려놓는다.
  • 술집 5에 도착해 술집 3의 패키지를 내려놓는다.
  • 술집 6에 도착해 새 패키지를 가져온다.
  • 술집 7에 도착해 술집 6의 패키지를 내려놓는다.
  • 술집 8에 도착해 새 패키지를 가져온다.
  • 술집 9에 도착해 새 패키지를 가져온다.
  • 술집 5에 도착해 술집 8의 패키지를 내려놓는다.
  • 술집 4에 도착해 술집 9의 패키지를 내려놓고 경로를 마친다.

총 이동 거리는 1414미터다.

예제2

  1. 예제 1

    입력
    10 6
    1 4
    3 5
    6 7
    2 1
    9 4
    8 5
    
    예상 출력
    14
    
  2. 예제 2

    입력
    100 3
    11 50
    50 49
    36 35
    
    예상 출력
    42