블록 쌓기

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

윤형이와 동혁이가 블록 쌓기 놀이를 한다. 두 사람 모두 너비가 NN인 블록 건물을 하나씩 쌓았다. 윤형이의 건물은 kk번째 열에 블록이 YkY_k개 있고, 동혁이의 건물은 kk번째 열에 블록이 DkD_k개 있다. 두 사람은 블록을 쌓거나 빼서 똑같이 생긴 건물 두 개를 만들려고 한다.

새로 만들 건물은 위 그림의 오른쪽처럼 팩맨 모양이어야 한다. 왼쪽에서 오른쪽으로 갈수록 블록 개수가 줄어들다가 다시 늘어나야 하고, 이웃한 두 열의 블록 개수는 정확히 1만큼 차이나야 하며, 블록이 가장 적은 열은 정중앙이어야 한다. NN이 홀수이므로 정중앙 열의 번호를 c=N+12c = \frac{N+1}{2}라 하면, 완성된 건물의 kk번째 열에는 어떤 정수 h0h \ge 0에 대해 블록이 h+kch + |k - c|개 있다.

방을 어지르지 않으려고, 뺀 블록은 곧바로 블록 상자에 넣는다. 블록을 다른 자리로 옮기려면 상자에 넣었다가 다시 꺼내서 쌓아야 한다. 상자에는 블록이 무한히 많다.

블록 한 개를 쌓는 것과 한 개를 빼는 것을 각각 한 번의 작업으로 센다. 두 건물을 모두 위 모양으로 바꿀 때, 작업 횟수의 합을 최소로 하는 프로그램을 작성하여라.

입력

첫째 줄에 두 건물의 너비 NN이 주어진다. NN은 홀수이다.

둘째 줄에 윤형이의 건물의 각 열 높이 Y1,Y2,,YNY_1, Y_2, \dots, Y_N이 공백으로 구분되어 주어진다.

셋째 줄에 동혁이의 건물의 각 열 높이 D1,D2,,DND_1, D_2, \dots, D_N이 공백으로 구분되어 주어진다.

출력

블록을 쌓거나 빼는 작업 횟수의 최솟값을 출력한다.

제한

  • 1N300,0001 \le N \le 300{,}000
  • 0Yk,Dk10120 \le Y_k, D_k \le 10^{12}

힌트

첫 번째 예제에서는 윤형이의 건물 1번째 열에 블록 2개를 쌓고, 동혁이의 건물 3번째 열에 블록 1개를 쌓으면 된다.