CF1732D2.Balance (Hard version)

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

This is the hard version of the problem. The only difference is that in this version there are remove queries.

Initially you have a set containing one element — 00 . You need to handle qq queries of the following types:

    • xx — add the integer xx to the set. It is guaranteed that this integer is not contained in the set;
    • xx — remove the integer xx from the set. It is guaranteed that this integer is contained in the set;
  • ? kk — find the k-mexk\text{-mex} of the set.

In our problem, we define the k-mexk\text{-mex} of a set of integers as the smallest non-negative integer xx that is divisible by kk and which is not contained in the set.

输入格式

The first line contains an integer qq ( 1q21051 \leq q \leq 2 \cdot 10^5 ) — the number of queries.

The following qq lines describe the queries.

An addition query of integer xx is given in the format + xx ( 1x10181 \leq x \leq 10^{18} ). It is guaranteed that xx is not contained in the set.

A remove query of integer xx is given in the format - xx ( 1x10181 \leq x \leq 10^{18} ). It is guaranteed that xx is contained in the set.

A search query of k-mexk\text{-mex} is given in the format ? kk ( 1k10181 \leq k \leq 10^{18} ).

It is guaranteed that there is at least one query of type ?.

输出格式

For each query of type ? output a single integer — the k-mexk\text{-mex} of the set.

输入输出样例

  • 输入#1

    18
    + 1
    + 2
    ? 1
    + 4
    ? 2
    + 6
    ? 3
    + 7
    + 8
    ? 1
    ? 2
    + 5
    ? 1
    + 1000000000000000000
    ? 1000000000000000000
    - 4
    ? 1
    ? 2

    输出#1

    3
    6
    3
    3
    10
    3
    2000000000000000000
    3
    4
  • 输入#2

    10
    + 100
    ? 100
    + 200
    ? 100
    - 100
    ? 100
    + 50
    ? 50
    - 50
    ? 50

    输出#2

    200
    300
    100
    100
    50

说明/提示

In the first example:

After the first and second queries, the set will contain elements {0,1,2}\{0, 1, 2\} . The smallest non-negative number that is divisible by 11 and is not in the set is 33 .

After the fourth query, the set will contain the elements {0,1,2,4}\{0, 1, 2, 4\} . The smallest non-negative number that is divisible by 22 and is not in the set is 66 .

In the second example:

  • Initially, the set contains only the element {0}\{0\} .
  • After adding an integer 100100 the set contains elements {0,100}\{0, 100\} .
  • 100-mex100\text{-mex} of the set is 200200 .
  • After adding an integer 200200 the set contains elements {0,100,200}\{0, 100, 200\} .
  • 100-mex100\text{-mex} of the set 300300 .
  • After removing an integer 100100 the set contains elements {0,200}\{0, 200\} .
  • 100-mex100\text{-mex} of the set is 100100 .
  • After adding an integer 5050 the set contains elements {0,50,200}\{0, 50, 200\} .
  • 50-mex50\text{-mex} of the set is 100100 .
  • After removing an integer 5050 the set contains elements {0,200}\{0, 200\} .
  • 100-mex100\text{-mex} of the set is 5050 .
首页