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 自动生成**