D - DISCO! Editorial /

Time Limit: 13 sec / Memory Limit: 1024 MB

配点: 700

問題文

高橋君は文字列 S を書きました。次の Q 個の質問に答えてください。

  • 質問 q (1 \leq q \leq Q): 整数 L_q, R_q が与えられる。S_i = D, S_j = I, S_k = S, S_l = C, S_m = O であるような組 (i, j, k, l, m) (L_q \leq i < j < k < l < m \leq R_q) は何個存在するか?その個数を 2^{32} で割った余り を求めよ。

制約

  • SD, I, S, C, O から構成される長さ 1 \ 000 \ 000 以下の文字列
  • 1 \leq Q \leq 100 \ 000
  • 1 \leq L_q \leq R_q \leq |S|
  • L_q, R_q は整数

入力

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

S
Q
L_1 R_1
L_2 R_2
L_3 R_3
:
L_Q R_Q

出力

Q 行出力せよ。q 行目に質問 q に対する答えを出力すること。


入力例 1

DDDDDDISCOOOOOO
7
6 10
5 11
4 12
3 13
2 14
1 15
1 8

出力例 1

1
4
9
16
25
36
0

入力例 2

DDDIIISSSCCCOOO
12
1 12
1 13
1 14
1 15
2 12
2 13
2 14
2 15
3 13
3 14
3 15
4 15

出力例 2

0
81
162
243
0
54
108
162
27
54
81
0