CF1732D1 Balance (Easy version)
题目描述
这是该问题的简单版本。唯一的区别在于本版本中没有“移除”操作。
初始时,你有一个只包含元素 $0$ 的集合。你需要处理 $q$ 个如下类型的操作:
- + $x$ —— 将整数 $x$ 加入集合。保证该整数当前不在集合中;
- ? $k$ —— 查询集合的 $k\text{-mex}$。
在本题中,我们定义集合的 $k\text{-mex}$ 为:集合中不存在的、最小的、能被 $k$ 整除的非负整数 $x$。
输入格式
第一行包含一个整数 $q$($1 \leq q \leq 2 \times 10^5$),表示操作次数。
接下来的 $q$ 行描述每个操作。
加数操作以 + $x$ 的格式给出($1 \leq x \leq 10^{18}$)。保证 $x$ 当前不在集合中。
查询操作以 ? $k$ 的格式给出($1 \leq k \leq 10^{18}$)。
保证至少有一个查询操作。
输出格式
对于每个查询操作,输出一个整数,表示集合的 $k\text{-mex}$。
说明/提示
在第一个样例中:
前两次操作后,集合包含元素 $\{0, 1, 2\}$。最小的、能被 $1$ 整除且不在集合中的非负整数是 $3$。
第四次操作后,集合包含元素 $\{0, 1, 2, 4\}$。最小的、能被 $2$ 整除且不在集合中的非负整数是 $6$。
在第二个样例中:
- 初始时,集合只包含元素 $\{0\}$。
- 加入整数 $100$ 后,集合为 $\{0, 100\}$。
- 集合的 $100\text{-mex}$ 是 $200$。
- 加入整数 $200$ 后,集合为 $\{0, 100, 200\}$。
- 集合的 $100\text{-mex}$ 是 $300$。
- 加入整数 $50$ 后,集合为 $\{0, 50, 100, 200\}$。
- 集合的 $50\text{-mex}$ 是 $150$。
由 ChatGPT 4.1 翻译