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

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

열려라 참깨

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

요약
각 열의 조약돌 높이와 홈 높이가 주어질 때, 연속 구간을 1씩 올리거나 내리는 연산으로 모든 조약돌을 홈에 맞추는 최소 시간을 구한다.
난이도

보통10점 중 7점

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

문제

디디와 chogahui05는 우연히 주운 보물지도를 따라 목적지에 도착했다. 보물은 퍼즐을 풀어야 열리는 금고에 들어 있었고, 퍼즐 내용은 다음과 같다.

가로 NN, 세로 2312^{31} 크기의 격자판이 있다. NN개의 세로줄에는 줄마다 자갈 하나와 그 자갈을 넣어야 하는 홈 하나가 있다.

1초에 한 번, 연속한 세로줄 XX개를 골라 그 줄에 놓인 자갈을 전부 위로 한 칸 올리거나 아래로 한 칸 내릴 수 있다. 이미 홈에 들어간 자갈도 움직일 수 있다. 자갈을 모두 홈에 넣으면 퍼즐이 풀리고 금고 문이 열린다.

자갈과 홈은 크기가 1×11 \times 1이고, 자갈이 홈의 정중앙에 놓여야 홈에 들어간 것으로 본다. 자갈이 격자판을 벗어나게 해서는 안 된다.

디디는 chogahui05가 자리를 비운 사이에 퍼즐을 최대한 빨리 풀고 보물을 가지고 도망치려 한다. 퍼즐을 푸는 데 걸리는 가장 짧은 시간을 초 단위로 구하는 프로그램을 작성하라.

가로 3, 세로 5인 격자판

위 그림은 가로 3, 세로 5인 격자판의 예시다. ●는 자갈, ✕는 홈을 뜻한다. 가장 빠른 방법 중 하나는 1번째 줄부터 3번째 줄까지의 자갈을 한 칸 올린 다음, 2번째 줄의 자갈을 두 번 내리는 것이다. 이때 3초가 걸린다.

입력

첫째 줄에 세로줄의 개수 NN이 주어진다. (1≤N≤1,000,0001 \le N \le 1{,}000{,}000)

둘째 줄에 자갈의 위치를 나타내는 정수 NN개가 공백으로 구분되어 주어진다. ii번째 수는 ii번째 세로줄에 있는 자갈의 높이 YiY_i다. (0≤Yi<2310 \le Y_i < 2^{31})

셋째 줄에 홈의 위치를 나타내는 정수 NN개가 같은 형식으로 주어진다. (0≤Yi<2310 \le Y_i < 2^{31})

출력

퍼즐을 푸는 데 걸리는 가장 짧은 시간을 초 단위로 첫째 줄에 출력한다.

예제3

  1. 예제 1

    입력
    3
    4 6 4
    5 5 5
    
    예상 출력
    3
    
  2. 예제 2

    입력
    1
    0
    0
    
    예상 출력
    0
    
  3. 예제 3

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