AT_utpc2023_a Again Make UTPC
题目描述
给定一个长度为 $N$ 的字符串 $S$,$S$ 的每个字符均为 `U`、`T`、`P`、`C` 之一。
你可以进行如下操作任意多次(也可以不操作):
- 任选一组整数对 $(i, j)$,满足 $1 \leq i \leq j \leq N$。将 $S$ 中第 $i$ 个字符到第 $j$ 个字符按字母升序排序。
请判断能否通过若干次(可为 0 次)上述操作,使字符串 $S$ 满足以下条件:
- $S$ 包含连续的子串 `UTPC`。
对于 $T$ 个测试用例,请对每个案例给出答案:若可行,输出最少需要的操作次数;否则输出 `-1`。
输入格式
输入以以下格式从标准输入读入。$\mathrm{case}_i$ 表示第 $i$ 个测试用例。
> $T$ $\mathrm{case}_1$ $\mathrm{case}_2$ $\vdots$ $\mathrm{case}_T$
每个测试用例如下:
> $N$ $S$
输出格式
输出 $T$ 行,第 $i$ 行输出第 $i$ 个测试用例的答案。若可以使字符串 $S$ 满足条件,则输出所需操作的最小次数;否则输出 $-1$。
说明/提示
### 样例解释 1
对于第 1 个测试用例,只需进行如下 2 次操作。若操作次数小于 2,则无法满足条件。
- 选择 $(i, j) = (1, 4)$,字符串变为 `CCUUTPUCUC`。
- 选择 $(i, j) = (7, 10)$,字符串变为 `CCUUTPCCUU`。
对于第 2 个测试用例,无论如何操作,都无法满足条件。
对于第 3 个测试用例,不需要任何操作即可满足条件。
### 约束条件
- $T, N$ 为整数
- $1 \leq T \leq 2 \times 10^5$
- $1 \leq N \leq 2 \times 10^5$
- $S$ 仅包含 `U`、`T`、`P`、`C`,长度为 $N$
- 所有测试用例中 $N$ 的总和不超过 $2 \times 10^5$
由 ChatGPT 5 翻译