trang chủ / đề bài / hn_hsg_22_c

Chia tiền thưởng

Đề bài

Mô tả

Nhờ hoàn thành tốt công việc, An và Bình được công ty thưởng N tờ tiền. Tờ tiền thứ i có mệnh giá ai. Hai bạn muốn chia đôi số tiền thành hai phần bằng nhau bằng cách chia cho mỗi người một số tờ tiền. Vì thế hai bạn quyết định sẽ chọn ra những tờ tiền để tổng số tiền hai bạn nhận được bằng nhau và lớn nhất, phần còn lại (nếu có) sẽ đem đi đầu tư.

Mỗi tờ tiền thuộc về đúng một trong ba phần: của An, của Bình, hoặc đem đi đầu tư (không được cắt nhỏ tờ tiền). Nếu không có cách nào để mỗi người nhận một số tiền dương bằng nhau thì cả hai đều nhận 0 và toàn bộ số tiền được đem đi đầu tư.

Yêu cầu: Hãy giúp hai bạn tính tổng số tiền lớn nhất mà mỗi người nhận được trước khi đầu tư.

Dữ liệu vào

  • Dòng đầu tiên chứa số nguyên dương N (N≤500).
  • Dòng thứ hai gồm N số nguyên dương a1,a2,…,aN là mệnh giá của những tờ tiền. Tổng giá trị những tờ tiền không vượt quá 105.

Dữ liệu ra

Gồm một dòng duy nhất là số tiền lớn nhất mà mỗi người nhận được.

Ràng buộc

  • 1≤N≤500.
  • ai≥1 và a1+a2+…+aN≤105.
  • Có 40% số test ứng với 40% số điểm thỏa mãn N≤3.
  • 30% số test tiếp theo ứng với 30% số điểm thỏa mãn N≤12.
  • 30% số test còn lại ứng với 30% số điểm không có ràng buộc gì thêm.

Ví dụ

Input Output Giải thích
5
1 2 4 5 2
7 An có thể chọn những tờ tiền có mệnh giá 1,2,4. Bình chọn những tờ tiền còn lại có mệnh giá 5,2. Mỗi người sẽ nhận được tổng số tiền là 7. Vì số tiền mỗi người nhận đã bằng nhau và đã chia hết số tiền nên họ sẽ không đầu tư.
5
9 8 4 5 13
17 An sẽ chọn những tờ tiền có mệnh giá 9,8. Bình sẽ chọn những tờ tiền mệnh giá 4,13. Mỗi người sẽ nhận được tổng số tiền là 17. Tờ tiền còn lại có mệnh giá 5 sẽ đem đi đầu tư.
2
3 8
0 Ví dụ do bộ chuyển đổi thêm vào. Không thể chia để hai người nhận số tiền dương bằng nhau, nên mỗi người nhận 0 và cả hai tờ tiền được đem đi đầu tư.

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.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0