trang chủ / bài tập / pierules

Luật chia bánh

Đề bài

Mô tả

Alice và Bob cùng chia nhau N miếng bánh. Thứ tự phát các miếng bánh đã được ấn định trước: miếng thứ 1, rồi miếng thứ 2, ..., cho tới miếng thứ N. Mỗi miếng bánh sẽ thuộc trọn về đúng một người.

Việc phân chia diễn ra nhờ một tấm thẻ đặc biệt gọi là thẻ quyết định, ban đầu do Bob giữ. Chừng nào còn bánh chưa phát, người đang giữ thẻ quyết định sẽ:

  • đưa miếng bánh tiếp theo cho một trong hai người, và
  • đưa thẻ quyết định cho người còn lại.

Nói cách khác, ở mỗi lượt người giữ thẻ chọn giữa hai khả năng: nhận miếng bánh hiện tại rồi nhường thẻ cho đối phương, hoặc nhường miếng bánh cho đối phương để giữ lại thẻ. Quá trình dừng khi tất cả N miếng bánh đã được phát.

Mọi miếng bánh đều ngon như nhau, nên cả hai người đều chỉ quan tâm tới việc tối đa hoá tổng kích thước phần bánh mình nhận được. Giả sử cả hai đều chơi tối ưu, hãy cho biết mỗi người nhận được bao nhiêu.

Dữ liệu vào

  • Dòng đầu chứa số nguyên N: số miếng bánh.
  • Dòng thứ hai chứa N số nguyên a1,a2,,aN: kích thước các miếng bánh, theo đúng thứ tự chúng được phát.

Dữ liệu ra

In ra hai số nguyên: tổng kích thước phần bánh Alice nhận được, sau đó là tổng kích thước phần bánh Bob nhận được, khi cả hai chơi tối ưu.

Ràng buộc

  • 1N50
  • 1ai100000

Ví dụ

Input Output Giải thích
3
141 592 653
653 733 Bob giữ miếng 141 cho mình và trao thẻ cho Alice. Alice đưa miếng 592 cho Bob nhưng giữ lại thẻ, nhờ đó tự nhận miếng 653. Alice được 653, Bob được 141+592=733.
5
10 21 10 21 10
31 41 Tổng bánh là 72. Chơi tối ưu, Bob (người giữ thẻ đầu tiên) nhận 41, Alice nhận 31.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0