O - Golf Editorial /

Time Limit: 3 sec / Memory Limit: 1024 MiB

配点 : 600

問題文

文字列 S が与えられます。 S[i:j]Si 文字目から j 文字目までを取り出した文字列を表すことにします。

文字列 T が次の条件を全て満たすとき、 T良い文字列であると定義します。

  • 1 \leq |T| \leq |S|
  • S[i:i+|T|-1] = T を満たす整数 i はちょうど 1 つだけ存在する

例えば Sabcbabc のとき、 cbabcbabcbabc良い文字列ですが、 abczyx良い文字列ではありません。

Q 個のクエリが与えられるので処理してください。 i 番目のクエリでは 1 \leq L_i \leq R_i \leq |S| を満たす整数 L_i, R_i が与えられるので、次の問題の答えを出力してください。

  • 2 つの整数 l, r であって、 1 \leq l \leq L_iR_i \leq r \leq |S| を満たし、かつ S[l:r]良い文字列であるようなものを考える。 r-l+1 の最小値はいくつか?

制約

  • S は英小文字からなる
  • 1 \leq |S| \leq 2 \cdot 10^5
  • 1 \leq Q \leq 2 \cdot 10^5
  • 1 \leq L_i \leq R_i \leq |S| \, (1 \leq i \leq Q)

入力

入力は以下の形式で標準入力から与えられる。

S
Q
L_1 R_1
L_2 R_2
\vdots
L_Q R_Q

出力

Q 行出力せよ。 i \, (1 \leq i \leq Q) 行目には i 番目のクエリの答えを出力せよ。


入力例 1

abcbabc
5
2 3
2 5
1 7
4 4
6 6

出力例 1

3
4
7
2
3

1 番目のクエリでは、 l=2, r=4 とすると r-l+1=3 となり、これが最小です。 bc良い文字列ではないので、 l=2, r=3 とすることはできません。

2 番目のクエリでは、 l=2, r=5 とすると r-l+1=4 となり、これが最小です。

3 番目のクエリでは、 l=1, r=7 とすると r-l+1=7 となり、これが最小です。一般に S そのものは良い文字列であることに注意してください。


入力例 2

yyxxzzyyxx
5
3 3
1 1
10 10
5 5
7 7

出力例 2

3
5
5
2
2

入力例 3

qprrrrrpprqrrppq
20
7 8
6 8
4 7
7 12
6 7
5 5
6 8
4 6
4 4
2 3
7 11
8 9
6 7
11 12
11 15
5 6
4 5
13 13
9 13
5 7

出力例 3

4
4
5
6
4
4
4
5
3
3
5
3
4
2
5
4
4
3
5
4

原案: Forested