AT_maximum_cup_2018_e Interrupt Array
题目描述
我们有一个初始数列 $S = \{1\}$。你需要进行总共 $q$ 次以下两种类型的查询操作:
- 类型 $A, i, j$:从数列中找到一个值为 $i$ 的位置,将其移除,并在原位置插入新的数列 $V = \{i, j, i\}$。
- 类型 $B, i, j$:在所有可能形成的数列中,找出满足 $S[a] = i$ 和 $S[b] = j$ 且 $|a - b|$ 最小的索引 $a$ 和 $b$。然后计算最小索引和最大的索引之间存在的数值类型数,并输出这些类型数中的最小值。
输入格式
输入通过标准输入给出,格式如下:
> $q$
> $c_1$ $i_1$ $j_1$
> ...
> $c_q$ $i_q$ $j_q$
其中 $c_k$ 是 $A$ 或 $B$,表示第 $k$ 次查询的种类 $(1 \leq k \leq q)$。
输出格式
对于每个 $B$ 类型的查询,输出结果,每行对应一个查询。
说明/提示
- $3 \leq q \leq 200000$
- $i, j$ 是非负整数。
- $1 \leq i, j \leq q$
- 前两次查询一定是类型 $A$。
- 对于类型 $A$,$i$ 均为数列中已存在的数,而 $j$ 是数列中尚未出现的最小正整数。
- 对于类型 $B$,$i, j$ 均为数列中已存在的数,且 $i \neq j$。
### 示例解释
初始状态是 $\{1\}$。接下来是每次查询后可能的数列变化:
- $A, 1, 2$:$\{1, 2, 1\}$
- $A, 1, 3$:可以变为 $\{1, 3, 1, 2, 1\}$ 或 $\{1, 2, 1, 3, 1\}$
- $A, 2, 4$:可以变为 $\{1, 3, 1, 2, 4, 2, 1\}$ 或 $\{1, 2, 4, 2, 1, 3, 1\}$
- $A, 2, 5$:可以形成多个状态,其中不同数之间的距离最短的情况输出 $2$
- $B, 3, 5$:计算所有可能数列中 $3$ 和 $5$ 之间的不同数字种类数,最小值为 $2$。
- $A, 1, 6$:可以继续变为不同的状态
- $B, 3, 6$:再次计算,输出的最小值为 $1$。
**本翻译由 AI 自动生成**