#LX0021. 与或
与或
题目描述
小明,没错又是小明。
他有一个长度为的数组,还有个运算符|
以及个运算符&
。此处and
和or
就是二进制下的与以及或操作。
小明需要把这个数用上述个符号从左到右连接起来,然后从左到右计算结果。
显然,不同的安排方式可能导致不同的结果。
例如 ,有一个&
和一个|
,那么如果是1&2|5
,结果是,如果是1|2 &5
,结果是。
小明希望得到最大的结果,在这个基础上,希望整个表达式的字典序尽量小(此处|
的字典序小于&
),请帮助小明计算最小的字典序。
输入格式
第一行输入。
接下来一行输入个正整数表示。
输出格式
第一行输出最大的结果。
第二行输出一个字符串表示字典序最小的符号序列。
样例输入 #1
4 2
1 3 5 7
样例输出 #1
7
||&
样例解释 #1
三种不同的符号序列产生的结果:
||&=7,|&|=7,&||=7
。
都是,||&
字典序最小。
样例输入 #2
4 1
1 3 5 7
样例输出 #2
7
&&|
样例解释 #3
三种不同的符号序列产生的结果:
&&|=7,&|&=5,|&&=1
。
数据范围
对于30%的数据:。
对于另30%的数据:。
对于另10%的数据:。
对于100%的数据:。