포럼
문제 USACO0630

케이크 게임

설명

베시와 엘시는 한 줄로 놓인 \(N\)개의 케이크를 발견했다 \((2 \leq N \leq 5\cdot 10^5\), \(N\)은 짝수\()\). 케이크의 크기는 순서대로 \(a_1,a_2,\dots,a_N\)이다 (\(1\le a_i\le 10^9\)).

두 소 모두 최대한 많이 먹고 싶어 한다. 하지만 매우 교양 있는 소들이기에, 게임을 해서 케이크를 나누기로 했다! 게임은 두 소가 번갈아 차례를 가지며 진행된다. 각 차례는 다음 중 하나로 이루어진다.

  1. 베시가 인접한 두 케이크를 골라 쌓아서, 두 크기의 합과 같은 크기의 새 케이크를 만든다.
  2. 엘시가 가장 왼쪽 또는 가장 오른쪽 케이크를 골라 자신의 보관함에 넣는다.

케이크가 하나만 남으면 베시가 그것을 먹고, 엘시는 자신의 보관함에 있는 케이크를 모두 먹는다. 두 소가 모두 자신이 먹는 케이크의 양을 최대화하도록 최적으로 플레이하고 베시가 먼저 시작한다면, 각 소는 케이크를 얼마나 먹게 될까?

문제 제공: Linda Zhao, Agastya Goel, Gavin Ye

제약

배점

  • 입력 2: 모든 \(a_i\)가 같다.
  • 입력 3: \(N\le 10\)
  • 입력 4-7: \(N\le 5000\)
  • 입력 8-11: 추가 제약 없음.

문제 제공: Linda Zhao, Agastya Goel, Gavin Ye

입력 형식

각 입력은 \(T\)(\(1\le T\le 10\))개의 독립적인 테스트 케이스로 이루어진다. 입력 내 모든 \(N\)의 합이 \(10^6\)을 넘지 않음이 보장된다.

각 테스트 케이스는 다음과 같이 주어진다. 첫째 줄에 \(N\)이 주어진다. 다음 줄에 공백으로 구분된 \(N\)개의 정수 \(a_1,a_2,\ldots,a_N\)이 주어진다.

출력 형식

각 테스트 케이스에 대해, 두 소가 모두 최적으로 플레이할 때 베시와 엘시가 각각 먹게 되는 케이크의 양 \(b\)\(e\)를 한 줄에 출력한다.

예제 1
입력
2
4
40 30 20 10
4
10 20 30 40
출력
60 40
60 40
설명

For the first test case, under optimal play,

  1. Bessie will stack the middle two cakes. The cakes now have sizes \([40,50,10]\).
  2. Elsie will eat the leftmost cake. The remaining cakes now have sizes \([50,10]\).
  3. Bessie stacks the remaining two cakes.

Bessie will eat \(30+20+10=60\) cake, while Elsie will eat \(40\) cake.

The second test case is the reverse of the first, so the answer is the same.

문제 정보

riseoj 작성

출처 올림피아드 > USACO > 2024-2025 > December > Silver

태그

평가 및 의견

Cake Game

개요
출제자 난이도 Unrated 레이팅 미적용 의견 0 / 1 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.

풀이 제출

Cake Game

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8