#loj5223. 「UOI 2023 Stage 4 Day2」字符数组与近似回文
「UOI 2023 Stage 4 Day2」字符数组与近似回文
[AdditionalFile5223.zip](file://AdditionalFile5223.zip?type=additional_file)
#5223. 「UOI 2023 Stage 4 Day2」字符数组与近似回文
标签: 交互 | 时间限制: 4000 ms | 内存限制: 256 MiB |
题目描述
题目译自 Ukrainian Olympiads in Informatics 2023 Stage 4 Day2 T2. Масив символів і майже паліндроми
这是一个交互题。
我们称一个字符串为回文,如果它从两端读取都相同。形式上,长度为 的字符串 是回文,当且仅当对于 ,。例如,字符串 $\texttt{gg}, \texttt{ara}, \texttt{abacaba}, \texttt{rotator}$ 是回文,而 不是。
我们称一个字符串为近似回文,如果可以通过重新排列其字符使其成为回文。例如,字符串 $\texttt{n}, \texttt{ara}, \texttt{arr}, \texttt{array}$ 是近似回文,而 不是。
字符串的子串是通过删除其开头和结尾的某些(可能是零个)字符形成的字符串。
我们定义 为字符串 的所有子串中,不是近似回文的最长子串的长度;如果没有这样的子串,则为 。
给定一个长度为 的字符串 ,由小写拉丁字母组成。同时给定 个查询,每个查询形式为 。对于每个查询,计算 的值,其中 表示由字符 组成的子串。
输入格式
输入的第一行包含一个整数 ,表示字符串的长度。
第二行包含一个长度为 的字符串 ,由小写拉丁字母组成。
第三行包含一个整数 ,表示查询的数量。
第四行包含两个整数 ,表示第一个查询的参数。
后续查询的参数将由评测程序提供(见「交互方式」部分)。
交互方式
评测程序将从第二个查询开始,逐行输出两个整数 ,表示当前查询的参数。
评测程序在读取到你的程序对前一个查询的回答之前,不会输出下一个查询的参数。
请确保在输出每行后调用 flush 方法。可以使用以下方式:
- C++ 中使用
fflush(stdout)、cout << endl或cout.flush(); - Java 中使用
System.out.flush(); - Pascal 中使用
flush(output); - Python 中使用
sys.stdout.flush(); - 其他编程语言请参考相关文档。
输出格式
对于第 个查询,单独输出一行一个整数,表示所求值 。
样例
输入
8
aabaaaba
3
3 7
1 8
4 4
输出
4
6
0
在第一个样例中,需要回答三个查询:
- ,其子串 长度为 ,不是近似回文;
- ,其子串 长度为 ,不是近似回文;
- ,其所有子串都是近似回文。
数据范围与提示
详细子任务附加限制及分值如下表所示:
| 子任务 | 分值 | 附加限制 |
|---|---|---|
| , 为偶数, 的形式为 | ||
| , | ||
| , | ||
| 仅包含字母 和 | ||
| (对于 ) | ||
| (对于 ) | ||
| 仅包含字母 $\texttt{a}, \texttt{b}, \texttt{c}, \texttt{d}, \texttt{e}, \texttt{f}$ | ||
| 为奇数(对于 ) | ||
| 无附加限制 |