P14761 [Opoi 2025] CCD 的序列

题目描述

以下关于括号序列和括号匹配的定义跟其他题没什么区别,知道的可以跳过。 --- 括号序列是一个只包含 $\texttt{(}$ 和 $\texttt{)}$ 的字符串。 定义一个括号序列是合法的,当且仅当它为下列三种之一: 1. 空串是合法的。 1. 如果字符串 $S$ 是合法的,则 $(S)$ 也是合法的。 1. 如果字符串 $S$ 和 $T$ 是合法的,则 $ST$ 也是合法的。 一个合法括号序列中,一个括号是另一个括号所匹配的括号,当且仅当两个括号之间是一个合法的括号序列,且两个括号方向相反。可以证明,一个括号所匹配的括号是唯一的。 --- 定义一个括号的匹配发生变更当且仅当它所匹配的括号变更。 你有一个括号序列 $S$。初始 $S$ 为空,**下标从 $1$ 开始**。 你要进行 $n$ 次操作,**操作之间不独立**。 每次操作给你两个数 $l,r(0\le l\le r\le |S|)$,表示**同时**往 $S$ 的 $l\sim l+1$ 之间插入左括号、往 $S$ 的 $r\sim r+1$ 之间插入右括号($l$ 或 $r$ 为 $0$ 表示在开头插入,为 $|S|$ 表示在末尾插入,**$l=r$ 时左括号插在右括号前面**)。 可以证明,每次操作完后这个括号序列都是合法的。每次操作完后你需要求这次操作导致匹配发生变更的括号数(不包括新增加的两个括号)。

输入格式

第一行一个数,表示 $n$。 接下来 $n$ 行,每行两个数 $l_i,r_i$,表示一次操作。

输出格式

$n$ 行,每行一个整数。第 $i$ 行表示第 $i$ 次操作导致匹配变更的括号数。

说明/提示

### 样例解释 以下标红的表示新增的括号,蓝色表示当次操作导致匹配发生变更的括号。 - 第一次操作后括号序列变为 $\texttt{\red{()}}$。 - 第二次操作后括号序列变为 $\texttt{\red{()}()}$。 - 第三次操作后括号序列变为 $\texttt{\red(()\red)()}$。 - 第四次操作后括号序列变为 $\texttt{\blue{((\red())(\red))}}$。 - 第五次操作后括号序列变为 $\texttt{(\red(\blue(\red)()\blue)())}$。 ### 数据范围与约定 **本题采用捆绑测试。** $$ \def\arraystretch{1.2} \begin{array}{|c|c|c|} \hline \begin{array}{c} \tt{subtask}\\\hline 1\\\hline 2\\\hline 3\\\hline \end{array} & \begin{array}{c} n\\\hline \le 10\\\hline \le 10^{3}\\\hline \le 2\times10^{5}\\ \end{array} & \begin{array}{c} \tt{pts}\\\hline 20\\\hline 30\\\hline 50\\\hline \end{array} \\\hline \end{array} $$ 对于所有数据,$0\le n \le 2\times10^{5}$,$\forall i \in [1,n],0\le l_i,r_i\le 2\times i-2$。