AT_jag2017summer_day1_f 極小部分列

题目描述

给出字符串 $s$ 和 $q$ 个查询,每个查询给出一个字符串 $t_i$。 你需要求出:在 $s$ 的最短的包含 $t_i$ 的子串中,最靠左边的那段的左右端点。

输入格式

第一行:字符串 $s$,长度不超过 $10^5$。 第二行:询问次数 $q$,不超过 $10^5$。 第三行开始的 $q$ 行:每行一个字符串 $t_i$。 保证:$s$ 和每个 $t_i$ 均由小写英文字母组成,且 $\sum |t_i|\le 10^5$ 。

输出格式

对于每个询问,输出一行。 - 若不存在此种子串,输出`-1`; - 否则,输出两个以单个空格隔开的两个正整数 $l$ 和 $r$,为题目所求。

说明/提示

### 制約 - $ 1≦|S|≦10^5 $ - $ 1≦Q≦10^5 $ - $ 1≦|T_i| $ - $ |T_i| $ の和は $ 10^5 $ を越えない - $ S,\ T_i $ は小文字アルファベットのみからなる ### Sample Explanation 1 $ 1 $ 番目のクエリについて説明します。 答えは $ 2 $ 文字目から $ 4 $ 文字目までの部分文字列 `axb` となります。 他にも $ 5 $ 文字目から $ 6 $ 文字目までの部分文字列 `ab` も $ T_1 $ を部分列として含む極小な部分文字列ですが、`axb` の方が左にあるためこちらは答えとはなりません。 また、`aaxb` は極小ではありません。 なぜなら `axb` という $ T_i $ を部分列として含むような部分文字列を含むためです。