A6499 | Alice是宝可梦
时间限制1s
内存限制128MB
通过 / 提交0/0
题目描述
Alice是一种宝可梦的名字,小智孵蛋孵出了一堆Alice,他要带一只Alice进她的队伍,让Alice参加宝可梦对战,成为宝可梦大师。只不过Alice这种宝可梦不会进化,我们还是希望Alice往上进化一段,变个Alice侠、Ali桥ce之类的。
但是小智不知道这些Alice掌握什么技能,于是他拿出宝可梦图鉴,对每只Alice逐个检查。
宝可梦图鉴会把这只Alice掌握的所有技能抽象成一个整数。然后根据这个整数的每一个二进制位来分析这只Alice会技能的情况,如果这个二进制位是 $1$ 则代表这只Alice掌握这个技能,是 $0$ 则代表这只Alice没有掌握这项技能。
注意Alice是个宝可梦,所以Alice不应该掌握 $4$ 种以上的技能,也不应该一个都技能不会。
但是小智不知道这些Alice掌握什么技能,于是他拿出宝可梦图鉴,对每只Alice逐个检查。
宝可梦图鉴会把这只Alice掌握的所有技能抽象成一个整数。然后根据这个整数的每一个二进制位来分析这只Alice会技能的情况,如果这个二进制位是 $1$ 则代表这只Alice掌握这个技能,是 $0$ 则代表这只Alice没有掌握这项技能。
注意Alice是个宝可梦,所以Alice不应该掌握 $4$ 种以上的技能,也不应该一个都技能不会。
输入格式
$n+1$ 行,第一行是整数 $n$ ( $1\le n\le 10^3$ ) ,表示有多少Alice这种宝可梦。
接下来的每一行一个正整数 $\mathbf s$ ( $1\le s\le 2^{64}-1$ ) ,表示这一只Alice掌握技能的情况。
接下来的每一行一个正整数 $\mathbf s$ ( $1\le s\le 2^{64}-1$ ) ,表示这一只Alice掌握技能的情况。
输出格式
$n$ 行
第一行是Alice掌握的所有技能的二进制位对应的十进制数,按照从小到大输出。(每个数字后用一个空格做分割)
如果Alice掌握的技能超过 $4$ 种或者一种技能都没掌握,则只输出一行 $-1$ 。
第一行是Alice掌握的所有技能的二进制位对应的十进制数,按照从小到大输出。(每个数字后用一个空格做分割)
如果Alice掌握的技能超过 $4$ 种或者一种技能都没掌握,则只输出一行 $-1$ 。
输入输出样例
输入 #1
2 588 589
输出 #1
4 8 64 512 -1
$588$ 转换位二进制数是 $0b0010 0100 1100$ 。这个数有 $4$ 个二进制位是 $1$ ,分别是从右往左第 $3$ 位、第 $4$ 位、第 $7$ 位、第 $10$ 位,它们对应的十进制数是 $4、8、64、512$ 。
$589$ 转换位二进制数是 $0b001001001100$ ,有 $5$ 个二进制位是 $1$ ,这代表Alice会 $5$ 个技能,故输出 $-1$ 。
$589$ 转换位二进制数是 $0b001001001100$ ,有 $5$ 个二进制位是 $1$ ,这代表Alice会 $5$ 个技能,故输出 $-1$ 。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?