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 00 to 10231023 . 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 55 lines. Your program should return the same integer as Petya's program for all arguments from 00 to 10231023 .

输入格式

The first line contains an integer nn ( 1<=n<=51051<=n<=5·10^{5} ) — the number of lines.

Next nn lines contain commands. A command consists of a character that represents the operation ("&", "|" or "^" for AND, OR or XOR respectively), and the constant xix_{i} 0<=xi<=10230<=x_{i}<=1023 .

输出格式

Output an integer kk ( 0<=k<=50<=k<=5 ) — the length of your program.

Next kk 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 xx 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.

首页