4233 - 集合(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

输入

6
+ 100
? 100
+ 200
? 100
+ 50
? 50

输出

200
300
150
说明

数据规模与约定

  • 对于 30\% 的数据,保证 q \le 500
  • 对于另 30\% 的数据,保证 q 次命令中询问次数不超过 1000 种。
  • 对于 100\% 的数据,保证 1 \le q \le 10^{5}1\le x\le 10^91\le k\le 10^9
标签
题目参数
时间限制 1 秒
内存限制 512 MB
提交次数 0
通过人数 0
金币数量 3 枚
难度 基础


上一题 下一题