【题目描述】
Alice和Bob是好朋友,这天他们正在玩一个找最大值的游戏。
Alice给出一个含有n个正整数的序列A(下标从1开始编号),以及一个位运算操作符op,她想要Bob回答所有AiopAj(1≤i<j≤n)的结果中的最大值。
运算符op可能为与运算(and)、或运算(or)、异或运算(xor)。
Bob并不会解答这个问题,你能帮帮他吗?
【输入】
第一行包含一个整数T,表示数据组数。
按下来T组数据,每组数据第一行包含两个整数n,c。其中n表示序列长度,c表示操作符。
当c=1时,操作符op为与运算(and)。
当c=2时,操作符op为异或运算(xor)。
当c=3时,操作符op为或运算(or)。
每组数据第二行包含n个整数,第i个整数表示序列中的数Ai。
【输出】
每组数据输出一行一个整数表示AiopAj(1≤i<j≤n)的最大值
【输入样例】
文本
3
5 1
1 4 5 7 9
5 2
2 3 4 5 7
5 3
9 5 4 2 1
【输出样例】
【提示】
【数据规模】
对于15%的数据:n≤1000。
对于另外15%的数据:A≤1024。
对于另外20%的数据:c均为1。
对于另外25%的数据:c均为2。
对于另外20%的数据:c均为3。
对于100%的数据:1≤T≤6,2≤n≤105,1≤Ai<220,c∈{1,2,3}。