#718. 位标记查询

位标记查询

题目描述

有一列长度为 nn 的非负整数,每个整数都在 00255255 之间。对一个整数而言,若它的二进制表示中第 kk 位为 11,则称它具有第 kk 个位标记。最低位为第 00 位。

现在有 qq 次查询,每次给出 llrrkk,请统计下标从 llrr 的所有整数中,有多少个整数具有第 kk 个位标记。

输入格式

第一行包含两个整数 nnqq

第二行包含 nn 个整数 a1,a2,,ana_1,a_2,\ldots,a_n

接下来 qq 行,每行包含三个整数 llrrkk,表示一次查询。

输出格式

输出 qq 行,每行一个整数,表示对应查询的统计结果。

样例

6 4
5 2 7 8 3 10
1 3 0
2 6 1
4 6 3
1 6 2
2
4
2
2

样例解释

例如第 11 次查询区间为 1133,对应 552277,其中 5577 的第 00 位为 11,所以答案为 22。其他查询按同样规则统计。

数据范围

对于 30%30\% 的数据,满足 1n,q1001 \le n,q \le 100

对于全部数据,满足 1n,q1000001 \le n,q \le 1000000ai2550 \le a_i \le 2551lrn1 \le l \le r \le n0k70 \le k \le 7