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

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

정원의 골칫거리, 그 후

면접 대비

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

요약
화염방사기로 각 구획과 양옆 구획의 잡초를 절반으로 줄여 모든 구획을 비우는 최소 발사 횟수를 구합니다.
난이도

보통10점 중 5점

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

문제

빈첸티 씨는 정원을 가꾸는 일을 몹시 싫어하기로 유명한 정원 주인이다. 지난번 낙엽 소동이 지나가고 얼마 뒤, 봄이 오면서 새로운 골칫거리가 생겼다. 정원 곳곳에 잡초가 무성하게 자라기 시작한 것이다. 어느 날 빈첸티 씨는 작업실에서 오랜 시간을 보낸 끝에 휴대용 화염방사기를 들고 정원에 나섰다.

정원은 11번부터 NN번까지 번호가 매겨진 NN개의 구역으로 이루어져 있다. ii번 구역에는 정수 개수의 잡초 cic_i가 있다. 화염방사기를 ii번 구역에 한 번 사용하면 ii번 구역과 양옆의 i−1i-1번, i+1i+1번 구역의 잡초 수가 각각 절반으로 줄어든다.

여기서 "절반으로 줄어든다"는 것은 22로 나눈 몫(내림)을 뜻한다. 즉 잡초가 88개이면 44개가 되고, 55개이면 22개가 된다. 화염방사기는 존재하지 않는 00번 구역이나 N+1N+1번 구역을 겨냥할 수도 있는데, 이때는 각각 11번 구역만, 또는 NN번 구역만 줄어든다.

모든 구역의 잡초를 00개로 만들기 위해 빈첸티 씨가 화염방사기를 최소 몇 번 사용해야 하는지 구하여라.

입력

첫째 줄에 테스트 케이스의 개수 ZZ (1≤Z≤101 \le Z \le 10)가 주어진다. 이어서 각 테스트 케이스가 주어진다.

각 테스트 케이스의 첫째 줄에는 정원의 구역 수 NN (1≤N≤1061 \le N \le 10^6)이 주어진다. 둘째 줄에는 각 구역의 잡초 수를 나타내는 NN개의 정수 cic_i (0≤ci≤1060 \le c_i \le 10^6)가 공백으로 구분되어 주어진다.

출력

각 테스트 케이스마다 화염방사기를 최소 몇 번 사용해야 하는지를 한 줄에 하나씩 출력한다.

예제4

  1. 예제 1

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

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

    입력
    1
    1
    1000000
    
    예상 출력
    20
    
  4. 예제 4

    입력
    1
    4
    5 6 7 8
    
    예상 출력
    7