#P810. 子集和(六)

子集和(六)

题目描述

给定一个长度为 nn 的序列 a1,a2,...,ana_1,a_2,...,a_n 与一个参数 kk

现有 qq 次询问,每次询问一个区间 [L,R][L,R],请你求出该区间内所有子集和中,有多少个子集和恰好是 kk 的倍数,答案对998244353998244353。(注意:所有子集中包含空集)

输入格式

输入第一行,三个正整数 n,q,kn,q,k 输入第二行,nn 个正整数 a1,a2,...,ana_1,a_2,...,a_n 接下来 qq 行, 每行两个正整数,表示询问区间的左右端点Li,RiL_i,R_i

输出格式

输出共 qq 行,第 ii 行的整数表示第 ii 个询问的答案

10 3 7
3 5 8 1 4 9 8 2 7 6
1 9
2 5
4 8
72
2
5

数据范围

  • 对于30%30\%的数据,1n,q101\leq n,q \leq 10
  • 对于60%60\%的数据,1n,q1031\leq n,q \leq 10^3
  • 对于100%100\%的数据,1n,q1051\leq n,q \leq 10^5 , 1k201 \leq k \leq 201ai1091 \leq a_i \leq 10^9