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

题目描述

鹏神通过高考考到了长沙学院,在一节程序设计课上学习了位运算,课后老师布置了一道作业题:

给你n个非负整数a1,a2,,an。随后会问你q个问题,每个问题只包含一个正整数x,要求你计算除了第x个数外数组中其余数的按位与、按位或和按位异或的值。

输入描述:

第一行一个正整数T表示测试数据组数(1≤T≤15)。

对于每一组测试数据第一行为两个正整数n和q,n表示数组的长度,q表示询问次数(2≤n,q≤105)。

第二行为n个非负整数a1,a2,⋯,an(0≤ai≤109)。

接下来q行,每行输入一个正整数x(1≤x≤n)。

输出描述:

输出q行,每一行输出三个非负整数,表示数组中除第x个数外其余数的按位与、按位或和按位异或。

示例1

输入

复制
1
3 3
1 1 1
1
2
3

输出

复制
1 1 0
1 1 0
1 1 0