Short Program CodeForces
来源:互联网 发布:腾讯内测手游软件 编辑:程序博客网 时间:2024/06/09 22:00
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.
Input
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
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.
Example
Input
3
| 3
^ 2
| 1
Output
2
| 3
^ 2
Input
3
& 1
& 3
& 5
Output
1
& 1
Input
3
^ 1
^ 2
^ 3
Output
0
这题输出的时候忘了加空格啊,,,
#include<iostream>#include<cstdio>#include<cmath>#include<cstring>#include<queue>#include<algorithm>#define INF 0x3f3f3f3fusing namespace std;bool check(int x,int i){ return x&(1<<i);}int main(){ int n; int x1=0; int x2=1023; char op[5]; int num; scanf("%d",&n); for(int i=0;i<n;i++) { scanf("%s%d",op,&num); if(op[0]=='|') x1|=num,x2|=num; else if(op[0]=='^') x1^=num,x2^=num; else x1&=num,x2&=num; } int v1=0,v2=0; for(int i=0;i<10;i++) { if(check(x1,i)&&check(x2,i)) v2+=(1<<i); else if(check(x1,i)&&!check(x2,i)) v1+=(1<<i),v2+=(1<<i); else if(!check(x1,i)&&check(x2,i)) v1+=(1<<i); } printf("2\n"); cout<<"& "<<v1<<endl; cout<<"^ "<<v2<<endl; return 0;}
- Short Program CodeForces
- Codeforces 879C Short Program【思维】
- Codeforces Round #443 (Div. 2): C. Short Program
- Codeforces #443 Div.2 C. Short Program 【位操作】
- Codeforces Round #443 (Div. 2) C Short Program
- Codeforces Round #443 (Div. 2) C. Short Program
- Codeforces Round #443 (Div. 2) C. Short Program
- codeforces C—Short Program 与或异或运算
- Codeforces Round #443 (Div. 2) C. Short Program 【模拟】
- Codeforces Round #443 (Div. 1) A. Short Program
- Codeforces Round #879 (Div. 2) C. Short Program
- C. Short Program
- Codeforces Round #443(Div.2) C.Short Program(位运算+思维)
- CF 878A SHORT PROGRAM
- CF #443 C Short Program
- CF 879 C. Short Program 思维+二进制
- codeforces 878 A short programme
- codeforces B. Cow Program (记忆化搜索)
- 求两个数的最大公约数
- Java for Web学习笔记(九五):消息和集群(10)利用RabbitMQ实现订阅和发布
- loop设备的删除
- JAVA第六次作业
- python实践项目(七)
- Short Program CodeForces
- JS中innerHTML outerHTML innerText outerText 和 value
- 5.2
- python 迭代器、生成器基础知识
- python笔记---需求文件requirements.txt的创建及使用
- 线程监控
- 集体智慧编程中文版错误记录
- iOS Reactivecocoa(RAC)原理分析
- CSS-Flexbox