Security
题面翻译
给出一个字符串$S$
给出$Q$个操作,给出$L, R, T$,求字典序最小的$S_1$,使得$S_1$为$S[L..R]$的子串,且$S_1$的字典序严格大于$T$。输出这个$S_1$,如果无解输出$-1$
$1 \leq |S| \leq 10 ^ 5, 1 \leq Q \leq 2 \times 10 ^ 5, 1 \leq L \leq R \leq |S|, \sum |T| \leq 2 \times 10 ^ 5$
题目描述
Some programming website is establishing a secure communication protocol. For security reasons, they want to choose several more or less random strings.
Initially, they have a string $ s $ consisting of lowercase English letters. Now they want to choose $ q $ strings using the following steps, and you are to help them.
- A string $ x $ consisting of lowercase English letters and integers $ l $ and $ r $ ( $ 1 \leq l \leq r \leq |s| $ ) are chosen.
- Consider all non-empty distinct substrings of the $ s_l s_{l + 1} \ldots s_r $ , that is all distinct strings $ s_i s_{i+1} \ldots s_{j} $ where $ l \le i \le j \le r $ . Among all of them choose all strings that are lexicographically greater than $ x $ .
- If there are no such strings, you should print $ -1 $ . Otherwise print the lexicographically smallest among them.
String $ a $ is lexicographically less than string $ b $ , if either $ a $ is a prefix of $ b $ and $ a \ne b $ , or there exists such a position $ i $ ( $ 1 \le i \le min(|a|, |b|) $ ), such that $ a_i < b_i $ and for all $ j $ ( $ 1 \le j < i $ ) $ a_j = b_j $ . Here $ |a| $ denotes the length of the string $ a $ .
输入格式
The first line of input contains a non-empty string $ s $ ( $ 1 \leq |s| \leq 10^{5} $ ) consisting of lowercase English letters.
The second line contains an integer $ q $ ( $ 1 \le q \le 2 \cdot 10^5 $ ) — the number of strings to select.
Each of the next $ q $ lines contains two integers $ l $ , $ r $ ( $ 1 \leq l \leq r \leq |s| $ ) and a non-empty string $ x $ consisting of lowercase English letters. The total length of strings $ x $ for all queries does not exceed $ 2 \cdot 10^{5} $ .
输出格式
Output $ q $ lines, each of them should contain the desired string or $ -1 $ , if there is no such string.
样例 #1
样例输入 #1
baa
5
1 2 ba
2 3 a
1 2 b
2 3 aa
1 3 b
样例输出 #1
-1
aa
ba
-1
ba
样例 #2
样例输入 #2
bacb
4
1 2 ba
2 3 ac
1 3 ac
3 4 c
样例输出 #2
-1
c
b
cb
样例 #3
样例输入 #3
bba
1
1 1 b
样例输出 #3
-1
提示
Consider the first example.
The string $ s $ is "baa". The queries are as follows.
- We consider the substring $ s_1 s_2 $ that is "ba". It has substrings "b", "a" and "ba", since none of them is greater than the query string "ba", the answer is $ -1 $ .
- We consider substring "aa". Among its substrings only "aa" is greater than the query string "a". So the answer is "aa".
- We consider substring "ba". Out of "b", "a" and "ba" only "ba" is greater than the query string "b", so the answer is "ba".
- We consider substring "aa". No substring of "aa" is greater than the query string "aa" so the answer is $ -1 $ .
- We consider substring "baa" and it has (among others) substrings "ba", "baa" which are greater than the query string "b". Since "ba" is lexicographically smaller than "baa", the answer is "ba".