#1399. 关键位之和

内存限制:512 MiB 时间限制:2000 ms 标准输入输出
题目类型:传统 评测方式:文本比较
上传者: yyf_0404

题目描述

给定一个长为 nn 的自然数序列 a1a_1 ,a2a_2 , ...... , ana_n

定义 aia_iaja_j关键位 key(i,j)key(i,j)ai<aja_i<a_jaia_iaja_j 最高的不同二进制位,即判定 ai<aja_i<a_j 的关键一位(即仅保留两数异或和的最高二进制位的 11 所表示的二进制数)。

aiaja_i \geq a_j,则 key(i,j)=0key(i,j)=0

例如,在序列 6 5 4 7 26\ 5\ 4\ 7\ 2 中,key(2,4)=2key(2,4)=2key(2,3)=0key(2,3)=0

注意,key(i,j)key (i, j) 的可行值为 {0,1,2,4,8,16,32,}\{0, 1, 2, 4, 8, 16, 32, \dots\}

现在请求出 i=1nj=inkey(i,j)mod998244353\sum_{i=1}^n{\sum_{j=i}^n{key(i,j)}} \bmod 998244353

输入格式

第一行一个数 n(1n106)n(1 \leq n \leq 10^6),表示序列长度。 第二行 nn 个数 a1,a2,...an(0ai109)a_1,a_2,...a_n(0 \leq a_i \leq 10^9),表示序列。

输出格式

输出一个数,表示 i=1nj=inkey(i,j)mod998244353\sum_{i=1}^n{\sum_{j=i}^n{key(i,j)}} \bmod 998244353

样例

样例输入1

5
6 5 4 7 2

样例输出1

5

样例输入2

6
1 1 4 5 1 4

样例输出2

29

数据范围与提示

在样例 1 中,key(1,4)=1,key(2,4)=key(3,4)=2key(1,4)=1,key(2,4)=key(3,4)=2,其他 key(i,j)=0key(i,j)=0,故答案为 55