AT_ijpc2015_e カードゲーム
题目描述
Snuke 和 Sumeko 玩了一个用带数字的卡片和硬币进行的游戏。
起初,Snuke 拿着一张写有数字 $ T $ 的卡片和 $ K $ 枚硬币,而 Sumeko 拥有 $ N $ 张未展示的卡片。
游戏共进行 $ N $ 个回合,每个回合按照如下步骤进行:
- Sumeko 从未展示的卡片中选一张展示给 Snuke,卡片上的数字记为 $ A $。
- 然后 Snuke 参照他手中卡片上的数字 $ B $,会受到 $ |A - B| $ 的伤害。
- 如果 Snuke 还有硬币,他可以选择用一枚硬币将手中的卡片与展示的卡片交换,或者选择不换卡片。
在这个游戏中,Snuke 希望尽可能减小每个回合中所受伤害的最大值。经过观察,Snuke 了解到 Sumeko 在第 $ i $ 回合一定会出示 $ A_i $ 这张卡片。
请计算 Snuke 在每个回合中可能收到的最大伤害的最小值。
注意,每回合结束后,Sumeko 会替 Snuke 恢复他的伤害。
输入格式
输入从标准输入获取,格式如下:
> $ N $ $ T $ $ K $ $ A_1 $ $ A_2 $ $ \ldots $ $ A_N $
- 第一行包含三个整数:总回合数 $ N $($ 1 \leq N \leq 100,000 $)、Snuke 开始持有卡片上的数 $ T $($ 1 \leq T \leq 10^9 $),以及 Snuke 的硬币数量 $ K $($ 1 \leq K \leq N $)。
- 第二行包含 $ N $ 个整数,第 $ i $ 个整数表示 Sumeko 在第 $ i $ 回合出示的卡片上的数 $ A_i $($ 1 \leq A_i \leq 10^9 $)。
输出格式
输出一个整数,表示 Snuke 在每个回合中的最大可能伤害的最小值,并且在一行后添加一个换行符。
说明/提示
### 部分分数
题目设有部分分。如果满足条件 $ N = K $,则解决问题可以获得 20 分。
**本翻译由 AI 自动生成**