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

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

흰개미

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

요약
두 흰개미가 이미 먹힌 널빤지에 인접한 널빤지를 번갈아 먹으며 각자 먹은 양을 최대로 하려 할 때, 최적 플레이에서 각자가 먹는 총량을 구한다.
난이도

어려움10점 중 8점

유형
그리디, 게임 이론, 동적 계획법, 구간
정답자
아직 제출이 없습니다

문제

흰개미 두 마리가 오래된 나무 울타리를 갉아 먹고 있다. 울타리는 높이가 서로 다를 수 있는 널빤지 nn개로 이루어져 있으며, 그중 일부는 이미 갉아 먹혀 사라졌다. 두 흰개미는 번갈아 가며 한 번에 널빤지 하나씩을 먹는다. 자기 차례에는 이미 먹힌 널빤지와 바로 옆에 붙어 있는 널빤지만 먹을 수 있다.

각 흰개미는 게임이 끝날 때까지 자신이 먹는 널빤지 높이의 합이 최대가 되도록 움직인다. 두 흰개미가 각각 먹게 되는 나무의 양을 구하여라.

입력

첫째 줄에 널빤지의 개수 nn이 주어진다 (1≤n≤1,000,0001 \le n \le 1{,}000{,}000).

둘째 줄에 널빤지의 높이를 나타내는 정수 nn개 l1,l2,…,lnl_1, l_2, \dots, l_n이 공백으로 구분되어 주어진다 (0≤li≤1,000,000,0000 \le l_i \le 1{,}000{,}000{,}000). li=0l_i = 0이면 ii번째 널빤지는 이미 먹힌 상태이다. 1<i<n1 < i < n인 널빤지 ii는 널빤지 i−1i-1, i+1i+1과 이웃한다. 널빤지 11은 널빤지 22와만, 널빤지 nn은 널빤지 n−1n-1과만 이웃한다. lil_i 중 적어도 하나는 00이다.

출력

한 줄에 정수 두 개를 출력한다. 첫 번째 정수는 게임을 먼저 시작하는 흰개미가 먹는 널빤지 높이의 합이고, 두 번째 정수는 상대 흰개미가 먹는 높이의 합이다.

힌트

샘플에서 울타리는 널빤지 8개로 이루어져 있고 그중 2개는 이미 먹힌 상태이다. 첫 번째 흰개미는 첫 차례에 높이 2,3,4,92, 3, 4, 9인 널빤지 중에서 고를 수 있다. 최적으로 진행하면 두 흰개미는 차례대로 높이 9,2,1,4,7,39, 2, 1, 4, 7, 3인 널빤지를 먹게 된다.

예제5

  1. 예제 1

    입력
    8
    1 2 0 3 7 4 0 9
    
    예상 출력
    17 9
    
  2. 예제 2

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

    입력
    5
    0 3 7 4 0
    
    예상 출력
    7 7
    
  4. 예제 4

    입력
    4
    0 7 1 5
    
    예상 출력
    12 1
    
  5. 예제 5

    입력
    5
    0 2 9 1 0
    
    예상 출력
    3 9