#P8569. [JRKSJ R6] 第七学区

[JRKSJ R6] 第七学区

题目背景

这个题本来是要拿到 Tree Diagram 上算的,但是 Tree Diagram 被某组织的宇宙射线射爆了,所以这个问题交给了你。

不过你不需要计算出可能出现的最坏情况,只需要解决原问题就可以了。

题目描述

给你一个长度为 nn 的序列 aa,求其所有子区间的按位或和的和。

输入格式

本题采用特殊的读入方式。以下是读入模板

#include<bits/stdc++.h>
#define Misaka namespace  
#define Mikoto std 
#define ull unsigned long long 
using Misaka Mikoto;
namespace READ
{
	ull Read()
	{
		char ch=getchar();
		ull s=0;
		while(ch<'0'||ch>'9') ch=getchar();
		while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();
		return s;
	}
	ull tp[10005];
	int l,r;
	ull g1,g2;
	void init(int &n)
	{
		int i,k;
		n=Read(),k=Read(),l=1;
		for(i=1;i<=k;i++)
			tp[i]=Read();
	}
	ull read()
	{
		if(l>r)
			l=Read(),r=Read(),g1=Read(),g2=Read();
		return tp[l++]*g1+g2;
	}
}
int main()
{
	int n;
   	READ::init(n);
}

初始调用一次 READ::init(n),之后你应调用 nnREAD::read(),第 iiREAD::read 返回 aia_i

输出格式

一个整数,表示答案。答案对 2642^{64} 取模。

10 10
2 8 9 1 9 2 7 1 2 10
1 10 1 1
544

提示

保证读入模板消耗的时间少于 200ms,空间少于 1MB。

数据规模

本题采用捆绑测试。

Subtask\text{Subtask} nn\le Score\text{Score}
11 10410^4 1010
22 3×1063\times 10^6 2020
33 4×1074\times 10^7 3030
44 5×1075\times 10^7 4040

对于 100%100\% 的数据,1n5×1071\le n\le 5\times 10^70ai<2640\le a_i <2^{64}