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

题目描述

给定 n 个数 a_i,求值:,其中符号 ,另外两个符号同理。

例如 时即计算: 的值。



(摘自 oiwiki)

伪代码:init() 读入,print() 输出
T ← init()
for k ← 1 .. T
    n ← init()
    for i ← 1 .. n
        a[i] ← init()
    ans ← 0
    for i ← 1 .. n
        tp ← 0
        for j ← 1 .. n
            tp ← tp or (a[i] and a[j])
        ans ← ans xor tp
    print(ans)
C/C++ 语言版:
for (k = 1; k <= T; ++k) {
  n = init();
  for (i = 1; i <= n; ++i)
    a[i] = init();
  ans = 0;
  for (i = 1; i <= n; ++i) {
    tp = 0;
    for (j = 1; j <= n; ++j)
      tp |= (a[i] & a[j]);
    ans ^= tp;
  }
}

输入描述:

全文第一行输入一个正整数 ,表示数据组数。

对每组数据,第一行输入一个正整数

第二行输入 n 个正整数,表示

输出描述:

对每组数据,输出一行一个整数表示答案。
示例1

输入

复制
1
2
1 1

输出

复制
0