B56 - Palindrome Queries Editorial /

Time Limit: 2 sec / Memory Limit: 1024 MB

配点: 1000

問題文

回文とは、前から読んでも後ろから読んでも変わらない文字列のことを指します。たとえば abbalevel は回文です。

長さ N の文字列 S が与えられます。以下の Q 個のクエリに答えてください。

  • i 個目のクエリ:S[L_i, R_i] は回文か?

ただし、S[l, r]Sl 文字目から r 文字目までの連続部分文字列のことを指します。

制約

  • N, Q, L_i, R_i は整数である
  • S は英小文字からなる文字列である
  • 1 \leq N \leq 100000
  • 1 \leq Q \leq 100000
  • |S| = N
  • 1 \leq L_i \leq R_i \leq N

入力

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

N Q
S
L_1 R_1
L_2 R_2
\vdots
L_Q R_Q

出力

Q 行にわたって出力してください。i 行目には、i 個目のクエリで回文である場合 Yes、そうでない場合 No と出力してください。


入力例 1

11 3
mississippi
5 8
6 10
2 8

出力例 1

Yes
No
Yes

1 個目のクエリでは、S[5, 8] = issi が回文かどうか聞かれています。これは回文なので、Yes と出力します。

2 個目のクエリでは、S[6, 10] = ssipp が回文かどうか聞かれています。これは回文ではないので、No と出力します。