ccf#CSPS2024A. 决斗(duel)

决斗(duel)

题目描述

今天是小 Q 的生日,他得到了 nn 张卡牌作为礼物。这些卡牌属于火爆的“决斗怪兽”,其中,第 ii 张卡代表一只攻击力为 rir_i,防御力也为 rir_i 的怪兽。

一场游戏分为若干回合。每回合,小 Q 会选择某只怪兽 ii 以及另一只怪兽 jjiji \neq j)并让怪兽 ii 向怪兽 jj 发起攻击。此时,若怪兽 ii 的攻击力小于等于怪兽 jj 的防御力,则无事发生;否则,怪兽 jj 的防御被打破,怪兽 jj 退出游戏不再参与到剩下的游戏中。一只怪兽在整场游戏中至多只能发起一次攻击。当未退出游戏的怪兽都已发起过攻击时,游戏结束。

小 Q 希望决定一组攻击顺序,使得在游戏结束时,未退出游戏的怪兽数量尽可能少。

输入格式

从文件 duel.in 中读入数据。

输入的第一行包含一个正整数 nn,表示卡牌的个数。

输入的第二行包含 nn 个正整数,其中第 ii 个正整数表示第 ii 个怪兽的攻击力及防御力 rir_i

输出格式

输出到文件 duel.out 中。

输出一行包含一个整数表示游戏结束时未退出游戏的怪兽数量的最小值。

5
1 2 3 1 2
2

样例 1 解释

其中一种最优方案为:第一回合让第 22 只怪兽向第 11 只怪兽发起攻击,第二回合让第 55 只怪兽向第 44 只怪兽发起攻击,第三回合让第 33 只怪兽向第 55 只怪兽发起攻击。此时没有退出游戏的怪兽都进行过攻击,游戏结束。可以证明没有更优的攻击顺序。

10
136 136 136 2417 136 136 2417 136 136 136
8

样例 3

见选手目录下的 duel/duel3.induel/duel3.ans

该样例满足 1in,ri2\forall 1 \leq i \leq n, r_i \leq 2

样例 4

见选手目录下的 duel/duel4.induel/duel4.ans

数据范围

对于所有测试数据,保证:1n1051 \leq n \leq 10^51ri1051 \leq r_i \leq 10^5

测试点 nn rir_i 特殊性质
141 \sim 4 10\leq 10 105\leq 10^5 无特殊性质
5105 \sim 10 105\leq 10^5 2\leq 2
111511 \sim 15 30\leq 30 105\leq 10^5 特殊性质 A
162016 \sim 20 105\leq 10^5 无特殊性质

特殊性质 A:保证每个 rir_i 在可能的值域中独立均匀随机生成。