아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

오렌지 키우기

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

요약
직선 위 N개 지점에 오렌지를 하나씩 심고 모두 먹어야 하며, 심은 뒤 K만큼 지나야 열매가 익는다. 이동 시간의 최솟값을 구한다.
난이도

보통10점 중 6점

유형
그리디, 배열
정답자
아직 제출이 없습니다

문제

비요뜨는 오렌지 농장을 가지고 있다. 오렌지 농장은 현재 오렌지가 심겨 있지 않으며, 좌우로 직선형 구조를 가진다. 오렌지 농장의 맨 왼쪽 위치에는 입구가 있다.

오렌지 농장 위에는 오렌지를 심을 수 있는 지점이 NN곳 있으며, 이들은 각각 입구에서 오른쪽으로 x_1,x_2,⋯ ,x_Nx\_1, x\_2, \cdots, x\_N만큼 오른쪽으로 떨어진 위치에 있다.

비요뜨는 거리 1을 이동하는 데 1만큼의 시간이 걸린다. 또한 오렌지를 한 번 심으면 KK의 시간 뒤에 오렌지 열매가 자라 먹을 수 있게 된다. 오렌지 열매를 심거나 다 자란 열매를 먹는 데에는 시간이 소요되지 않는다.

비요뜨는 오렌지 농장의 입구에서 출발해, NN개의 지점에 오렌지를 하나씩 심고 NN개의 오렌지를 모두 먹으려 한다. 비요뜨가 오렌지를 모두 먹는 데 걸리는 최소 시간을 계산하자.

입력

첫 줄에는 심을 오렌지의 수 NN과 오렌지가 자라는 데 걸리는 시간 KK가 주어진다.

둘째 줄에는 오렌지를 심을 수 있는 NN개의 지점과 오렌지 농장의 입구와의 거리 x_1,x_2,⋯ ,x_Nx\_1, x\_2, \cdots, x\_N이 오름차순으로 주어진다.

출력

비요뜨가 오렌지를 모두 먹는 데 걸리는 최소 시간을 출력한다.

제한

  • 1≤N≤3×1051 \le N \le 3 \times 10^5
  • 0≤K≤1090 \le K \le 10^9
  • 1≤x_1<x_2<⋯<x_N≤1091 \le x\_1 < x\_2 < \cdots < x\_N \le 10^9

예제2

  1. 예제 1

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

    입력
    5 4
    1 2 3 11 12
    
    예상 출력
    20