만드는 중입니다

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

투 포인터 (쉬운 버전)

면접 대비

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

요약
도시 위치와 앨리스, 밥의 출발점이 주어질 때, 모든 도시를 둘 중 한 명이 방문하도록 두 사람이 이동하는 거리의 합의 최솟값을 구합니다.
난이도

보통10점 중 5점

유형
정렬, 투 포인터, 그리디
정답자
아직 제출이 없습니다

문제

앨리스와 밥은 좌표 −109-10^9에서 10910^9까지 뻗어 있는 매우 긴 도로 위의 도시들을 방문한다. 앨리스는 점 AA에서, 밥은 점 BB에서 출발한다.

방문할 도시는 nn개이며, ii번째 도시는 점 tit_i에 있다. 각 도시는 앨리스 또는 밥이 최소 한 번 방문해야 하지만, 방문 순서는 임의로 정할 수 있다.

앨리스와 밥이 이동하는 총 거리의 최솟값은 얼마인가?

입력

각 입력은 여러 개의 테스트 케이스로 구성된다. 첫 줄에는 테스트 케이스의 수 TT (1≤T≤1001 \le T \le 100)가 주어진다. 각 테스트 케이스는 다음과 같다.

첫 줄에는 도시의 수 nn, 앨리스의 위치 AA, 밥의 위치 BB가 공백으로 구분된 세 정수로 주어진다 (1≤n≤2⋅1051 \le n \le 2 \cdot 10^5, −109≤A,B≤109-10^9 \le A, B \le 10^9).

둘째 줄에는 도시의 위치 t1,t2,…,tnt_1, t_2, \ldots, t_n이 공백으로 구분된 nn개의 정수로 주어진다 (−109≤ti≤109-10^9 \le t_i \le 10^9).

모든 테스트 케이스의 nn을 합하면 최대 2⋅1052 \cdot 10^5이다.

출력

각 테스트 케이스의 답을 한 줄에 하나씩 출력한다.

모든 도시를 방문하기 위해 앨리스와 밥이 이동해야 하는 총 거리의 최솟값을 출력한다.

힌트

첫 번째 테스트 케이스에서 도시는 77개이다. 앨리스는 좌표 −6-6에서, 밥은 점 1010에서 출발한다.

모든 도시를 방문하는 최적의 방법 중 하나는 다음과 같다 (i→xji \xrightarrow{x} j는 ii에서 jj로 거리 xx만큼 이동한다는 뜻이다).

  • 앨리스는 (주어진 순서대로) 도시를 방문한다: A→0city 6→9city 1A \xrightarrow{0} \text{city }6 \xrightarrow{9} \text{city }1.
  • 밥은 (주어진 순서대로) 도시를 방문한다: B→1city 5→1city 3→4city 4→8city 7→1city 2B \xrightarrow{1} \text{city }5 \xrightarrow{1} \text{city }3 \xrightarrow{4} \text{city }4 \xrightarrow{8} \text{city }7 \xrightarrow{1} \text{city }2.

앨리스는 총 0+9=90 + 9 = 9만큼, 밥은 총 1+1+4+8+1=151 + 1 + 4 + 8 + 1 = 15만큼 이동한다. 둘이 이동한 거리의 합은 9+15=249 + 15 = 24이다. 2424보다 적게 이동하는 방법이 없음은 증명할 수 있으므로 답은 2424이다.

두 번째 테스트 케이스에서 앨리스와 밥은 이미 모두 도시 22에 있다. 밥은 도시 22를 방문한 뒤 도시 11을 방문할 수 있으며, 이때 총 이동 거리는 2,000,000,0002,000,000,000이다. 앨리스는 아무것도 하지 않아도 된다.

세 번째 테스트 케이스에서 앨리스는 유일한 도시를 방문할 수 있으며, 점 44에서 점 11까지 거리 33만큼 이동한다. 밥은 아무것도 하지 않는다.

예제1

  1. 예제 1

    입력
    4
    7 -6 10
    -15 -1 12 8 11 -6 0
    2 -1000000000 -1000000000
    1000000000 -1000000000
    1 4 6
    1
    4 727 137
    39 852 201 696
    
    예상 출력
    24
    2000000000
    3
    413