CF939E Maximize!

题目描述

给定一个由正整数组成的多重集 $S$(初始为空)。有两种操作: 1. 向 $S$ 中添加一个正整数,且新添加的整数不小于 $S$ 中的任意数。 2. 找出 $S$ 的一个子集 $s$,使得值 $$ \max(s) - \text{avg}(s) $$ 最大。这里 $\max(s)$ 表示 $s$ 中元素的最大值,$\text{avg}(s)$ 表示 $s$ 中元素的平均值。输出该最大值。

输入格式

第一行包含一个整数 $Q$($1 \le Q \le 5 \cdot 10^{5}$),表示操作的数量。 接下来的 $Q$ 行,每行描述一个操作。对于类型为 $1$ 的操作,输入两个整数 $1$ 和 $x$,其中 $x$($1 \le x \le 10^{9}$)为要加入 $S$ 的数,保证 $x$ 不小于 $S$ 中的任意数。对于类型为 $2$ 的操作,输入一个整数 $2$。 保证第一个操作为类型 $1$,即当出现类型 $2$ 的操作时,$S$ 不为空。

输出格式

对于每个类型为 $2$ 的操作,按输入顺序输出答案,每个答案占一行。 如果你的每个答案的绝对误差或相对误差不超过 $10^{-6}$,则视为正确。 形式化地,设你的答案为 $a$,标准答案为 $b$,当 $$ \frac{|a-b|}{\max(1, |b|)} \le 10^{-6} $$ 时,答案被认为是正确的。

说明/提示

由 ChatGPT 4.1 翻译