만드는 중입니다

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

로보타이

면접 대비

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

요약
길이 L인 이랑의 양 끝에서 두 로봇이 출발해 주어진 M개 위치에 나무를 심을 때, 모든 나무를 심는 최소 시간을 구합니다.
난이도

보통10점 중 5점

유형
이분 탐색, 그리디
정답자
아직 제출이 없습니다

문제

길이가 LL인 직선 모양의 밭고랑에 나무 MM그루를 심어야 합니다. 나무는 로봇이 심으므로, 밭고랑의 모든 거리는 robopėda (로보발) 단위로 잽니다.

위치(밭고랑 시작점으로부터의 거리)는 P1,P2,…,PMP_1, P_2, \dots, P_M입니다. 이 위치마다 나무를 한 그루씩 심어야 합니다.

로봇 두 대가 작업합니다. 각 로봇은 1 시간 단위에 1 로보발을 이동하고, 나무 한 그루를 심는 데 SS 시간 단위가 걸립니다. 첫 번째 로봇은 위치 00에서, 두 번째 로봇은 위치 LL에서 출발합니다. 두 로봇은 모두 시각 00에 작업을 시작합니다.

두 로봇이 함께 작업할 때 모든 나무를 심는 데 걸리는 최소 시간 TT를 구하는 프로그램을 작성하세요.

입력

첫 줄에 정수 MM, LL, SS가 주어집니다. MM은 위치의 개수, LL은 밭고랑의 길이, SS는 나무 한 그루를 심는 데 걸리는 시간입니다.

이어지는 MM개의 줄에 나무를 심을 위치 P1,P2,…,PMP_1, P_2, \dots, P_M이 한 줄에 하나씩, 오름차순으로 주어집니다.

출력

최소 시간 TT를 한 줄에 출력합니다.

제한

1≤M≤1061 \le M \le 10^6

1≤L≤1091 \le L \le 10^9

1≤S≤1031 \le S \le 10^3

0≤Pi≤L0 \le P_i \le L

예제3

  1. 예제 1

    입력
    3 8 1
    1
    3
    6
    
    예상 출력
    5
    
  2. 예제 2

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

    입력
    3 17 3
    0
    2
    4
    
    예상 출력
    13