QOJ.ac

QOJ

実行時間制限: 1 s メモリ制限: 1024 MB 満点: 100

#14088. 盗人者恒被盗

統計

马里奥发现自己身处一个富裕的街区。街道上有 $N$ 栋房子,每栋房子里有 $S_i$ 颗星星,其中 $i \in [1, N]$。

他得到了 $K$ 个容量无限的麻袋,用来装偷来的星星。他可以从每栋房子里拿走任意数量的星星。然而,来自不同房子的星星不能和睦相处。因此,来自不同房子的星星不能放在同一个麻袋里。但是,马里奥可以将来自同一栋房子的星星分装在多个麻袋中。如果马里奥认为有必要,他也可以让某些麻袋保持为空。

一旦马里奥完成了抢劫,他会遇到库巴(Bowser),库巴会抢走他恰好一半的麻袋。库巴当然会抢走装有最多星星的那些麻袋。知道这一点后,马里奥有两个目标。他的首要任务是最大化他最终保留的星星数量。在最大化该值 $M$ 之后,他的次要任务是确保在所有能让马里奥保留 $M$ 颗星星的抢劫方案中,库巴抢走的星星数量最少。

例如,在第一个样例中,马里奥可以从第 2、6 和 9 栋房子各偷走 10 颗星星,并从第 8 栋房子偷走 9 颗星星。库巴会抢走装得最满的两个麻袋(共 20 颗星星),而马里奥将保留 19 颗星星。请注意,19 颗星星是马里奥可能获得的最大星星数量,而 20 则是所有能让马里奥获得 19 颗星星的方案中,库巴抢走的最小星星数量。

然而,在第二个样例中,马里奥会将第 2 栋房子的 30 颗星星平分到他的三个麻袋中(每个 10 颗),然后在第四个麻袋中装入第 3 栋房子的 10 颗星星。库巴会抢走其中的 20 颗星星,同样留给马里奥 20 颗星星。

输出两个整数,分别代表马里奥最终能保留的最大星星数量,以及他必须给库巴的最小星星数量。

输入格式

第一行包含两个空格分隔的整数:$N$ 和 $K$($1 \le N, K \le 1\,000$)。保证 $K$ 是偶数。

第二行包含 $N$ 个整数 $S_i$($0 \le S_i \le 1\,000$),每个数字代表对应房子里的星星数量。

输出格式

输出一行,包含两个整数,依次代表马里奥最终能保留的最大星星数量,以及他必须给库巴的最小星星数量。

样例

输入样例 1

10 4
3 12 4 6 1 10 8 9 18 0

输出样例 1

19 20

输入样例 2

3 4
9 30 11

输出样例 2

20 20

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.