4364: T3 集合(set)

内存限制:512 MB 时间限制:2.000 S
评测方式:文本比较 命题人:
提交:1 解决:1

题目描述

## T3 集合(set) ### 题目描述 小 C 有一个集合 $S$,最开始 $S=\{0\}$。 现在有两种操作,分别如下: - `+ x`,将 $S\leftarrow S\cup\{x\}$,即将元素 $x$ 加入集合 $S$ 中。(一个元素可能会被加入多次) - `? k`,求出最小的整数 $t\times k(t\ge0)$,满足 $t\times k\notin S$。 现在小 C 给了你 $q$ 次命令,每次命令为两种操作中的一种,你需要对于所有的询问操作给出答案。

输入

### 输入格式 输入的第一行包含一个整数 $q$。 接下来 $q$ 行,每行包含一次命令,格式见题目描述。

输出

### 输出格式 输出包含若干行,每行输出一个整数,表示当前询问操作的答案。

样例输入 复制

5
+ 7
+ 4
? 3
+ 1
? 2

样例输出 复制

3
2

提示

### 样例 1 输入 ``` 5 + 7 + 4 ? 3 + 1 ? 2 ``` ### 样例 1 输出 ``` 3 2 ``` ### 样例 2 输入 ``` 6 + 100 ? 100 + 200 ? 100 + 50 ? 50 ``` ### 样例 2 输出 ``` 200 300 150 ``` 其余样例见下发文件。 ### 数据规模与约定 - 对于 $30\%$ 的数据,保证 $q \le 500$。 - 对于另 $30\%$ 的数据,保证 $q$ 次命令中询问次数不超过 $1000$ 种。 - 对于 $100\%$ 的数据,保证 $1 \le q \le 10^{5}$,$1\le x\le 10^9$,$1\le k\le 10^9$。