#1451. 区间次方和

区间次方和

问题描述

给定一个长度为 nn 的整数数组 aa 以及 mm 每个查询包含三个整数 l,r,kl,r,k 表示询问 lrl∼r 之间所有元素的 kk 次方和。

请对每个查询输出一个答案,答案对 109+710^9 + 7 取模。

输入格式

第一行输入两个整数 n,mn,m 其含义如上所述。

第二行输入 nn 个整数 a1,a2ana_1,a_2 \ldots a_n

接下来 mm 行,每行输入三个整数 l,r,kl,r,k 表示一个查询。

输出格式

输出 mm 行,每行一个整数,表示查询的答案对 109+7 10^9+7 取模的结果。

样例输入

5 3
1 2 3 4 5
1 3 2
2 4 3
3 5 1

样例输出

14
99
12

限制与约定

对于20%20 \% 的数据,保证 $k=1 \ ,1 \le n \le 100 \ ,1 \le m \le 100 \ ,1 \le a_i \le 100 $

对于50%50 \% 的数据,保证 $ 1\le k \le 5 , 1 \le n \le 10^5 \ ,1 \le m \le 100 \ ,1 \le a_i \le 100$

另外对于10%的数据,保证$k=1 \ ,1 \le n \le 10^5 \ ,1 \le m \le 10^5 \ ,1 \le a_i \le 10^9 $

对于100%100 \% 的数据,保证 $ 1\le k \le 5 , 1 \le n \le 10^5 \ ,1 \le m \le 10^5 \ ,1 \le a_i \le 100 , l \le r \le n $

  • 时间限制: 1s1 s
  • 空间限制: 256MB256 MB