만드는 중입니다

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

Logland

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

요약
2의 거듭제곱 액면가 동전 개수가 주어졌을 때, 나머지 금액을 두 사람이 똑같이 나눌 수 있도록 남겨야 하는 최소 금액을 10^9+7로 나눈 나머지로 구합니다.
난이도

어려움10점 중 8점

유형
비트 연산, 그리디, 수학
정답자
아직 제출이 없습니다

문제

두 명의 도둑(자신들의 이름을 밝히지 말라고 강하게 권고한)이 나라의 현금 준비금이 보관된 Logland의 중앙 은행에 침입했습니다. Logland의 화폐에는 kk개의 액면가 1,2,4,8,…,2k−11, 2, 4, 8, \ldots, 2^{k - 1}이 있고, 은행에는 현재 액면가 2i2^i인 동전이 xix_i개씩 있습니다.

도둑들은 매우 엄격한 명예 규칙을 따르며, 훔친 전리품은 반드시 둘이 똑같이 나눠 가져야 합니다. 안타깝게도 이 때문에 일부 전리품을 두고 가야 할 수도 있습니다. 예를 들어 은행에 액면가 8인 동전 한 개와 액면가 2인 동전 두 개만 있다면, 8짜리 동전은 가져갈 방법이 없습니다. 대신 액면가 2인 동전을 한 개씩 가져가야 하며, 가능한 전리품의 절반 이상을 남기게 됩니다.

전리품을 남기는 것도, NP-난해 문제를 푸는 것도 도둑들이 좋아하는 일은 아닙니다. 그래서 남은 전리품을 똑같이 나눌 수 있도록, 도둑들이 남겨 두어야 하는 전리품 금액의 최솟값을 구해 달라고 요청했습니다.

입력

첫 번째 줄에 Logland의 액면가 종류 수를 나타내는 정수 kk (1≤k≤1061 \le k \le 10^6)가 주어집니다. 두 번째 줄에는 액면가 20,21,…,2k−12^0, 2^1, \ldots, 2^{k-1}인 동전의 개수를 나타내는 정수 x0,x1,…,xk−1x_0, x_1, \ldots, x_{k-1} (0≤xi≤2300 \le x_i \le 2^{30}) kk개가 주어집니다.

출력

도둑들이 남겨 두어야 하는 전리품 금액의 최솟값을 한 줄에 출력합니다. 이 값은 매우 클 수 있으므로, 소수 109+710^9+7로 나눈 나머지를 출력합니다.

예제3

  1. 예제 1

    입력
    4
    0 2 0 1
    
    예상 출력
    8
    
  2. 예제 2

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

    입력
    5
    3 3 3 3 3
    
    예상 출력
    1