#L4334. 「CSP-S 2024」决斗

「CSP-S 2024」决斗


题目描述

小 Q 有 (n) 张卡牌,第 (i) 张卡牌代表一只怪兽,其攻击力防御力均为 (r_i)。

游戏规则:

  • 每回合选择怪兽 (i) 攻击怪兽 (j)((i \neq j))
  • 如果 (r_i > r_j),则怪兽 (j) 退出游戏
  • 否则无事发生
  • 每只怪兽至多发起一次攻击
  • 所有未退出游戏的怪兽都攻击过时,游戏结束

目标:安排攻击顺序,使得游戏结束时未退出游戏的怪兽数量尽可能少


输入格式

duel.in 读入数据:

  • 第一行:正整数 (n)
  • 第二行:(n) 个正整数 (r_1, r_2, \dots, r_n)

输出格式

输出到 duel.out

  • 一行一个整数,表示未退出游戏的怪兽数量的最小值

样例

样例 1

输入:
5
1 2 3 1 2

输出:
2

解释:一种最优方案:

  1. 怪兽 2 攻击怪兽 1(怪兽 1 退出)
  2. 怪兽 5 攻击怪兽 4(怪兽 4 退出)
  3. 怪兽 3 攻击怪兽 5(怪兽 5 退出) 剩余怪兽 2 和 3 都攻击过,游戏结束,剩余 2 只。

样例 2

输入:
10
136 136 136 2417 136 136 2417 136 136 136

输出:
8

样例 3

  • 满足 (r_i \leq 2)

数据范围

测试点 (n) (r_i) 特殊性质
1~4 (\leq 10) (\leq 10^5)
5~10 (\leq 10^5) (\leq 2)
11~15 (\leq 30) (\leq 10^5) 独立均匀随机生成
16~20 (\leq 10^5) 无限制