AT_pakencamp_2021_day2_o Golf
题目描述
给定一个字符串 $S$。定义子串 $S[i:j]$ 表示从字符串 $S$ 的第 $i$ 个字符到第 $j$ 个字符组成的子串。
如果子串 $T$ 满足以下条件,则称其为一个「好字符串」:
- 长度在 1 到 $|S|$ 之间,即 $1 \leq |T| \leq |S|$
- 恰好存在唯一一个整数 $i$,使得 $S[i:i+|T|-1]$ 与 $T$ 相等
例如,若字符串 $S$ 为 `abcbabc`,那么 `cb`、`abcb` 和 `abcbabc` 都是「好字符串」,但 `abc` 和 `zyx` 不是。
接下来有 $Q$ 个查询。对于第 $i$ 个查询,给出两个整数 $L_i$ 和 $R_i$,满足 $1 \leq L_i \leq R_i \leq |S|$,然后解决以下问题:
- 寻找两个整数 $l$ 和 $r$,使得 $1 \leq l \leq L_i$ 且 $R_i \leq r \leq |S|$,并使得子串 $S[l:r]$ 是一个「好字符串」。然后计算 $r-l+1$ 的最小可能值。
输入格式
输入通过标准输入提供,格式如下:
> $ S $ $ Q $ $ L_1 $ $ R_1 $ $ L_2 $ $ R_2 $ $ \vdots $ $ L_Q $ $ R_Q $
输出格式
输出 $Q$ 行。对于每个查询,第 $i$ 行输出对应查询的结果。
说明/提示
- 字符串 $S$ 仅由小写英文字母组成。
- $1 \leq |S| \leq 200,000$
- $1 \leq Q \leq 200,000$
- 对于每个 $i$,满足 $1 \leq L_i \leq R_i \leq |S|$
### 样例解释
对于第一个查询,我们可以取 $l=2, r=4$,此时 $r-l+1=3$,这是最小值。注意 `bc` 不是「好字符串」,所以不能取 $l=2, r=3$。在第二个查询中,取 $l=2, r=5$,得到 $r-l+1=4$,是最小值。在第三个查询中,我们取 $l=1, r=7$,则 $r-l+1=7$,这是最小值。值得注意的是,字符串 $S$ 本身是一个「好字符串」。
**本翻译由 AI 自动生成**