만드는 중입니다

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

돌 놓기 게임

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

요약
원형으로 배치된 칸에서 두 플레이어가 자기 돌에 인접한 빈 칸에 번갈아 돌을 놓을 때, 각자의 최적 점수를 구합니다.
난이도

보통10점 중 7점

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

문제

NN개의 칸이 원형으로 배치된 게임판에서 철수와 영희가 게임을 한다. ii번째 칸에는 음이 아닌 정수 xix_{i}가 적혀 있다. 각 칸에는 돌을 최대 하나 놓을 수 있다.

철수는 검은 돌을 NN개, 영희는 흰 돌을 NN개 갖고 있다. 먼저 두 사람이 정해진 몇 개의 칸에 돌을 놓는다. 이후 철수부터 시작해서 번갈아 턴을 진행한다. 자신의 턴에는 자신의 돌이 놓인 칸과 인접한 빈칸이 있으면 그중 하나를 골라 자신의 돌을 놓는다. 그러한 칸이 없으면 턴이 상대에게 넘어간다. 아무도 돌을 놓을 수 없으면 게임이 종료된다.

철수와 영희는 각자 자신의 돌이 놓인 칸의 점수 합을 최대화하려고 한다. 턴을 진행하기 전의 돌 배치가 주어졌을 때, 두 사람이 모두 최적의 수를 둘 경우 각자의 점수를 구하라.

입력

첫 줄에 NN이 주어진다. (3≤N≤200 0003\leq N\leq 200\,000)

둘째 줄에 NN개 칸의 돌 배치를 나타내는 정수 c1,⋯ ,cNc_{1}, \cdots, c_{N}이 공백으로 구분되어 주어진다. (0≤ci≤20\leq c_{i}\leq 2) ci=1c_{i}=1이면 ii번째 칸에 검은 돌이 놓여 있고, ci=2c_{i}=2이면 흰 돌이, ci=0c_{i}=0이면 어떤 색의 돌도 놓여 있지 않다.

셋째 줄에 NN개 칸에 적힌 정수 x1,⋯ ,xNx_{1}, \cdots, x_{N}이 공백으로 구분되어 주어진다. (0≤xi≤1090\leq x_{i}\leq 10^{9})

출력

첫 줄에 철수와 영희가 얻는 점수를 공백으로 구분하여 출력한다.

예제4

  1. 예제 1

    입력
    9
    0 1 0 2 0 0 2 0 0
    1 2 3 4 5 6 7 8 9
    
    예상 출력
    12 33
    
  2. 예제 2

    입력
    4
    0 0 0 0
    6 9 8 8
    
    예상 출력
    0 0
    
  3. 예제 3

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

    입력
    36
    1 1 0 0 2 2 0 1 0 0 0 0 2 0 0 0 1 0 0 0 1 0 0 2 0 0 0 2 0 0 0 1 0 0 0 1
    18 23 18 20 40 30 19 15 13 11 19 21 12 25 43 37 23 21 10 4 9 7 3 60 54 32 18 39 42 55 71 92 4 2 40 1
    
    예상 출력
    493 458