九条可怜是一个喜欢数据结构的女孩子,在常见的数据结构中,可怜最喜欢的就是线段树。
线段树的核心是懒标记,下面是一个带懒标记的线段树的伪代码,其中 tag 数组为懒标记:
其中函数 Lson(Node) 表示 Node 的左儿子,Rson(Node) 表示 Node 的右儿子。
现在可怜手上有一棵
,假设可怜当前手上有 棵线段树,可怜会把每棵线段树复制两份(tag 数组也一起复制),原先编号为 的线段树复制得到的两棵编号为 与 ,在复制结束后,可怜手上一共有 棵线段树。接着,可怜会对所有编号为奇数的线段树进行一次 。 ,可怜定义一棵线段树的权值为它上面有多少个节点 tag 为 。可怜想要知道她手上所有线段树的权值和是多少。
输入格式
第一行输入两个整数
接下来
输出格式
对于每次询问,输出一行一个整数表示答案,答案可能很大,对
样例一
input
5 5 2 1 1 3 2 1 3 5 2
output
0 1 6
explanation
在第一次询问时,可怜手上有一棵线段树,它所有点上都没有标记,因此答案为
在第二次询问时,可怜手上有两棵线段树,按照编号,它们的标记情况为:
- 点
上有标记,权值为 。 - 没有点有标记,权值为
。
因此答案为
在第三次询问时,可怜手上有四棵线段树,按照编号,它们的标记情况为:
- 点
上有标记,权值为 。 - 点
上有标记,权值为 。 - 点
上有标记,权值为 。 - 没有点有标记,权值为
。
因此答案为
样例二至样例三
见样例数据下载。
限制与约定
测试点 | 其他约定 | ||
---|---|---|---|
1 | 无 | ||
2 | |||
3 | |||
4 | |||
5 | 询问只有一个 | ||
6 | |||
7 | |||
8 | 无 | ||
9 | |||
10 |
对于
时间限制:
空间限制: