CF444D DZY Loves Strings
题目描述
DZY 喜欢字符串,他也喜欢收集字符串。
在中国,许多人喜欢用包含自己姓名首字母的字符串,例如:xyz、jcvb、dzy、dyh。
有一天,DZY 获得了一个幸运字符串 $s$。很多对好朋友在得知这个消息后找到了 DZY。第 $i$ 对好朋友中的第一个人名字是 $a_{i}$,第二个人名字是 $b_{i}$。每一对朋友都想知道幸运字符串中是否存在一个子串同时包含 $a_{i}$ 和 $b_{i}$。如果存在,他们想找到最短的那一个,这样可以为他们带来好运并让友谊长存。
请帮助 DZY 对于每一对朋友,找出包含 $a_{i}$ 和 $b_{i}$ 的最短子串长度,或者指出不存在这样的子串。
字符串 $s$ 的一个子串表示为 $s_{l}s_{l+1}\ldots s_{r}$,其中 $l, r$ 满足 $1 \leq l \leq r \leq |s|$。该子串的长度为 $(r-l+1)$。
如果字符串 $p$ 包含另一个字符串 $q$,表示存在 $p$ 的某个子串等于 $q$。
输入格式
第一行包含一个字符串 $s$,$1 \leq |s| \leq 50000$。
第二行包含一个非负整数 $q$,$0 \leq q \leq 100000$,表示朋友对的数量。接下来的 $q$ 行,每一行描述一对朋友,包含用空格分隔的两个字符串 $a_{i}$ 和 $b_{i}$,满足 $1 \leq |a_{i}|, |b_{i}| \leq 4$。
保证所有字符串只包含小写英文字母。
输出格式
对于每一对朋友,输出一行,包含一个整数,表示所需子串的最小长度。如果不存在这样的子串,输出 $-1$。
说明/提示
第一个样例中最短的子串分别是:xyz、dyhduxyz。
第二个样例中最短的子串分别是:ca、abc 和 abd。
第三个样例中最短的子串分别是:baabca 和 abaa。
由 ChatGPT 5 翻译