AT_jag2018summer_day2_j AB Sort

题目描述

你有一个长度为 $N$、有且仅有 $A$ 和 $B$ 的字符串。你需要处理$Q$次询问。 对于第$i$次询问,你会得到 $l_i$ 和 $r_i$ 两个数。之后,对于每一个 $x$ ($l_i\le x \le r_i$), $s_x$ 更改为另一个字母,就是 $A$ 改为 $B$ , $B$ 改为 $A$ 。 每次查询后,你需要计算函数 $f$($B+s+A$),即在字符串$s$前添加一个$B$,后添加一个$A$。给定字符串 $t$ 。函数 $f$($t$) 的返回值是一个非负整数。$f$($t$)函数应遵循一下更改规则: - 对于字符串$t$中所有形如$BA$的字串,请用形如$AB$的字串代替。 - $f$($t$)函数的返回值是将字符串 $t$ 变成没有形如$BA$的字串所需要的替换次数。 例如$f$($ABAB$)的返回值为$1$,$f$($BBAA$)的返回值为$3$,$f$($AAA$)的返回值为$0$。

输入格式

输入一共$Q+3$行。 第一行共一个正整数$N$。 第二行有一个长度为$N$的字符串$s$。 第三行有一个正整数$Q$。 之后$Q$行每一行两个正整数$l_i$与$r_i$。

输出格式

输出一共$Q$行。 每一行有一个正整数$f$($A+B+s$)。

说明/提示

- $1$ $\le$ $N$ $\le$ $200000$ - |$s$| = $N$ - 字符串$s$只包含$A$和$B$两种字符。 - $1$ $\le$ $Q$ $\le$ $200000$ - $0$ $\le$ $l_i$ $\le$ $r_i$ $\le$ $N-1$ - $N,Q,l_i,r_i$ 都是整数。 ### 样例解释 在第一次查询后,字符串$s$被更改为了$BBBAA$,所以需要排序的字符串为$BBBBAAA$,即输出$f$($BBBBAAA$)的值。第二次查询后,字符串$s$被更改为了$AAAAA$,所以需要排序的字符串为$BAAAAAA$,即输出$f$($BAAAAAA$)的值。