P17345 [ECNA 2025] But I Want to Win

题目描述

Frobozz 最大的城市 Borphee 最近失去了市长——一只 Grue 永不满足的胃口把他吞掉了。副市长随即成为代理市长,并立刻接管市长职责。这些职责主要是主持一年一度的“双人 Fanucci 锦标赛”(一种异常复杂的纸牌游戏)和“从糟糕到最糟歌唱节”(全国最可怕的歌手每年冬天都会聚集于此)。市长年薪高达数十万 zorkmid(zm),对于如此轻松的工作而言实在十分丰厚。特别选举临近,副市长当然愿意尽其所能,把自己的身份从“代理市长”变成“市长”,从而保住这份优厚薪水。 整个帝国的所有选举都采用一种单胜者排序选择投票制度,规则如下: 1. 选民按偏好顺序填写选票:第一选择是最喜欢的候选人,第二选择是次喜欢的候选人,依此类推。每名选民都必须给所有候选人排名。例如有 $12$ 名候选人时,每名选民都要从第 $1$ 名(最喜欢)排到第 $12$ 名(最不喜欢)。随后选举分若干轮进行。 2. 每轮开始时,统计所有选票当前的第一选择票。如果某候选人获得超过 $50\%$ 的第一选择票,该候选人获胜,选举结束。 3. 如果没有获胜者,就从所有选票中删除第一选择票最少的候选人,并让排在其后的剩余候选人顺次前移。例如,某位选民把四名候选人依次排为 A、B、C、D;若 A 被删除,选票变为 B、C、D;若 B 被删除,选票变为 A、C、D。如果一名或多名候选人并列拥有最少的第一选择票,则把他们全部删除。 4. 调整选票后,回到步骤 2,开始下一轮。 这一过程可能持续到只剩两名候选人,此时获得多数第一选择票的候选人获胜。 代理市长假定,选举最终会在他和另一名非常受欢迎的候选人之间决出胜负。基于这一判断,他希望重点争取那些最初把其他候选人列为第一选择的选民,以防首轮计票后自己只排第二。为了帮助他规划竞选,他希望你编写程序:假定他在第一轮结束后位居第二,求他获得多数票至少还需要经过多少轮。

输入格式

第一行包含一个整数 $c$($2\le c\le 20$),表示候选人数量。 第二行包含 $c$ 个互不相同的整数 $v_1,v_2,\ldots,v_c$,其中 $1\le v_i\le 10^9$,表示候选人 $i$ 获得的票数。

输出格式

如果第一轮排名第二的候选人不可能赢得选举,输出 `IMPOSSIBLE TO WIN`。否则,输出按照排序选择投票规则,该候选人在第一轮之后至少还需多少轮才能获胜。