CF878A.Short Program
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Petya learned a new programming language CALPAS. A program in this language always takes one non-negative integer and returns one non-negative integer as well.
In the language, there are only three commands: apply a bitwise operation AND, OR or XOR with a given constant to the current integer. A program can contain an arbitrary sequence of these operations with arbitrary constants from 0 to 1023 . When the program is run, all operations are applied (in the given order) to the argument and in the end the result integer is returned.
Petya wrote a program in this language, but it turned out to be too long. Write a program in CALPAS that does the same thing as the Petya's program, and consists of no more than 5 lines. Your program should return the same integer as Petya's program for all arguments from 0 to 1023 .
输入格式
The first line contains an integer n ( 1<=n<=5⋅105 ) — the number of lines.
Next n lines contain commands. A command consists of a character that represents the operation ("&", "|" or "^" for AND, OR or XOR respectively), and the constant xi 0<=xi<=1023 .
输出格式
Output an integer k ( 0<=k<=5 ) — the length of your program.
Next k lines must contain commands in the same format as in the input.
输入输出样例
输入#1
3 | 3 ^ 2 | 1
输出#1
2 | 3 ^ 2
输入#2
3 & 1 & 3 & 5
输出#2
1 & 1
输入#3
3 ^ 1 ^ 2 ^ 3
输出#3
0
说明/提示
You can read about bitwise operations in https://en.wikipedia.org/wiki/Bitwise_operation.
Second sample:
Let x be an input of the Petya's program. It's output is ((x&1)&3)&5=x&(1&3&5)=x&1 . So these two programs always give the same outputs.