B56 - Palindrome Queries
解説
/
/
実行時間制限: 2 sec / メモリ制限: 1024 MiB
配点: 1000 点
問題文
回文とは、前から読んでも後ろから読んでも変わらない文字列のことを指します。たとえば abba や level は回文です。
長さ N の文字列 S が与えられます。以下の Q 個のクエリに答えてください。
- i 個目のクエリ:S[L_i, R_i] は回文か?
ただし、S[l, r] は S の l 文字目から 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 と出力します。