#J60007. 袋中球的种类数

袋中球的种类数

问题描述

有一个初始为空的袋子。接下来给出 QQ 次操作,请按顺序处理。

操作分为以下三种:

  • 1 x:向袋子中放入一个写有整数 xx 的球;
  • 2 x:从袋子中取出一个写有整数 xx 的球;
  • 3:查询袋子中写有多少种不同的整数。

同一个整数可能出现在多个球上。执行 2 x 时,保证袋子中至少有一个写有 xx 的球。

输入格式

第一行输入一个整数 QQ,表示操作次数。

接下来 QQ 行,每行表示一次操作,格式为以下三种之一:

  • 1 x;
  • 2 x;
  • 3。

输出格式

对于每次第 33 种操作输出一行,表示当前袋子中不同整数的种类数。

样例输入 1

8
1 3
1 1
1 4
3
2 1
3
1 5
3

样例输出 1

3
2
3

样例输入 2

8
1 2
1 2
3
2 2
1 4
1 4
2 2
3

样例输出 2

1
1

样例解释 1

前三次操作后,袋子中有写着 1,3,41,3,4 的球,因此第一次查询输出 33。

取出写有 11 的球后,袋子中剩余 3,43,4 两种整数,因此第二次查询输出 22。

评测数据规模

对于所有数据,保证:

  • 1≤Q≤2×1051\leq Q\leq2\times10^5;
  • 1≤x≤1061\leq x\leq10^6;
  • 执行第 22 种操作时,袋子中一定存在写有 xx 的球;
  • 至少存在一次第 33 种操作;
  • 输入均为整数。