欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
CF878A.Short Program
Short Program
题目描述
Petya 学会了一种新语言 CALPAS。一个 CALPAS 程序接收一个非负整数作为输入,并输出一个非负整数。
该语言只有三种指令:把当前整数与给定常数进行按位与、按位或或按位异或。常数范围均为 到 。程序会按给定顺序依次执行所有指令。
Petya 写出了一个很长的程序。请构造一个至多包含 行指令的新 CALPAS 程序,使它对所有 到 的输入都与原程序输出相同。
输入格式
第一行一个整数 (),表示原程序的指令数。
接下来 行,每行包含一个字符和一个整数 ():
& x_i表示当前数与 按位与;| x_i表示当前数与 按位或;^ x_i表示当前数与 按位异或。
输出格式
第一行输出一个整数 (),表示你构造的程序长度。
接下来输出 行指令,格式与输入相同。对于每个 到 的输入,新程序必须与原程序得到相同输出。
存在多种正确答案,输出任意一种即可。
样例
输入 1
3
| 3
^ 2
| 1
输出 1
2
| 3
^ 2
输入 2
3
& 1
& 3
& 5
输出 2
1
& 1
输入 3
3
^ 1
^ 2
^ 3
输出 3
0
样例说明
第二组中,原程序的作用为
$((x\mathbin{\&}1)\mathbin{\&}3)\mathbin{\&}5=x\mathbin{\&}(1\mathbin{\&}3\mathbin{\&}5)=x\mathbin{\&}1$,
所以一条 & 1 指令即可。
在线编程 IDE
建议全屏模式获得最佳体验
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |