만드는 중입니다

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

두 포인터 (어려운 버전)

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

요약
앨리스와 밥이 n개의 이벤트를 순서대로 나누어 방문할 때, 두 사람이 이동하는 총 거리의 최솟값을 구합니다.
난이도

보통10점 중 7점

유형
동적 계획법, 세그먼트 트리
정답자
아직 제출이 없습니다

문제

앨리스와 밥이 점 −109-10^9에서 10910^9까지 뻗은 매우 긴 도로에서 운전하고 있다. 앨리스는 점 AA에서, 밥은 점 BB에서 출발한다. 위치가 tit_i인 이벤트가 nn개 있다. 각 이벤트는 앨리스 또는 밥이 반드시 방문해야 하며, 반드시 순서대로 방문해야 한다(이벤트 1, 이벤트 2, 이벤트 3, ..., 이벤트 nn 순서).

모든 이벤트를 방문하기 위해 앨리스와 밥이 운전하는 총 거리의 최솟값을 구하라.

입력

첫 줄에 이벤트의 개수 nn (1≤n≤3⋅1051\le n\le3\cdot10^5)이 주어진다.

둘째 줄에 두 정수 AA, BB (−109≤A,B≤109-10^9\le A,B\le10^9)가 주어진다. 앨리스와 밥의 출발 위치다.

셋째 줄에 nn개의 정수 t1,t2,…,tnt_1, t_2, \dots, t_n (−109≤ti≤109-10^9\le t_i\le10^9)이 주어진다. 앨리스 또는 밥이 도착해야 하는 이벤트의 위치다.

출력

앨리스와 밥이 운전하는 총 거리의 최솟값을 정수 하나로 출력한다.

예제3

  1. 예제 1

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

    입력
    6
    540 152
    450 600 532 496 325 336
    
    예상 출력
    526
    
  3. 예제 3

    입력
    8
    35 315
    -406 -543 114 205 -840 161 540 -731
    
    예상 출력
    1699