P14453 [ICPC 2025 Xi'an R] Grand Voting

题目描述

Dada 举办了一场比赛,但收到了大量的差评。他决定开始操控评论区的投票。 这场比赛的票数记为 $s$,初始值为 $0$。 共有 $n$ 位参与者,每个人都有一个投票参数 $a_i$。当轮到第 $i$ 个人投票时: - 如果 $s \geq a_i$,他会投出一个赞成票,使 $s$ 增加 $1$; - 如果 $s < a_i$,他会投出一个反对票,使 $s$ 减少 $1$。 Dada 可以自由安排这 $n$ 个人的投票顺序。他想知道,这场比赛的最终票数 $s$ 的**最大值**和**最小值**分别是多少。

输入格式

输入的第一行包含一个整数 $n$($1 \leq n \leq 10^5$),表示投票者的数量。 第二行包含 $n$ 个整数 $a_1, a_2, \cdots, a_n$($|a_i| \leq 10^5$),表示每位投票者的参数,数值之间用空格分隔。

输出格式

输出一行,包含两个整数,分别表示这场比赛的票数 $s$ 的最大值和最小值,用空格隔开。

说明/提示

例如,将序列 $a$ 排列为 $[-1, 0, 1, 2, 3]$。初始时 $s = 0$。由于 $s \geq a_1 = -1$,第一个人投出赞成票,$s$ 变为 $1$。此后其余四人也满足 $s \geq a_i$,因此他们都会投出赞成票。最终 $s = 5$,这就是可能的最大结果。 相反,如果将 $a$ 排列为 $[1, 2, 0, 3, -1]$,那么从左到右,对于每一个人都有 $s < a_i$,因此他们全部投出反对票,最终 $s = -5$。这就是可能的最小结果。另一种排列方式,如 $[3, 2, 1, 0, -1]$,同样也会得到 $s = -5$。 翻译由 ChatGPT-5 完成