#aBC374C. [ABC374C] Separated Lunch

[ABC374C] Separated Lunch

AT_abc374_c [ABC374C] Separated Lunch

题目描述

由于 Keyence 总公司的员工人数不断增加,公司决定将总部的所有部门分成两组,并分别安排不同的午休时间段。

Keyence 总公司共有 NN 个部门,第 ii 个部门有 KiK_i 人。

请将每个部门分配到组 AA 或组 BB 中,使得每组的部门可以同时午休,并且组 AA 和组 BB 的午休时间不重叠。请你求出在所有可能的分组方式中,同时午休的最大人数的最小可能值。
也就是说,设组 AA 的总人数为 SAS_A,组 BB 的总人数为 SBS_B,请你最小化 max(SA,SB)\max(S_A, S_B)

输入格式

输入通过标准输入给出,格式如下:

NN K1K_1 K2K_2 \ldots KNK_N

输出格式

请输出同时午休的最大人数的最小可能值。

输入输出样例 #1

输入 #1

5
2 3 5 10 12

输出 #1

17

输入输出样例 #2

输入 #2

2
1 1

输出 #2

1

输入输出样例 #3

输入 #3

6
22 25 26 45 22 31

输出 #3

89

说明/提示

限制条件

  • 2N202 \leq N \leq 20
  • 1Ki1081 \leq K_i \leq 10^8
  • 所有输入均为整数

样例解释 1

将第 1,2,51,2,5 个部门分配到组 AA,第 3,43,4 个部门分配到组 BB 时,组 AA 的总人数为 2+3+12=172+3+12=17,组 BB 的总人数为 5+10=155+10=15,此时同时午休的最大人数为 1717
无法将部门分配得使得组 AA 和组 BB 的总人数都不超过 1616,因此输出 1717

样例解释 2

可能存在多个部门人数相同的情况。

样例解释 3

例如,将第 1,4,51,4,5 个部门分配到组 AA,第 2,3,62,3,6 个部门分配到组 BB 时,同时午休的最大人数为 8989

由 ChatGPT 4.1 翻译