异或和之和
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

给一个数组,数组内有 个正整数。
求这些数任取3个数异或运算后求和的值。
也就是说,取一共 个三元组,计算这些三元组内部异或,之后求和。(具体操作可以见样例描述)
由于该值可能过大,输出其对 取模的值。

输入描述:

第一行一个正整数 
接下来有 个正整数 a_i

输出描述:

任取三个数、三元组内部位异或后求和对取模的值。
示例1

输入

复制
4
3 4 5 6

输出

复制
10

说明

共有4个三元组:{3,4,5}、{3,4,6}、{3,5,6}、{4,5,6}
3\ XOR\ 4\ XOR\ 5\ =\ 2\
3\ XOR\ 4\ XOR\ 6\ =\ 1\
3\ XOR\ 5\ XOR\ 6\ =\ 0\
4\ XOR\ 5\ XOR\ 6\ =\ 7\

相加为10\