题目名称 | 1920. [CF 325E]红色按钮 |
---|---|
输入输出 | theredbutton.in/out |
难度等级 | ★☆ |
时间限制 | 1000 ms (1 s) |
内存限制 | 256 MiB |
测试数据 | 10 |
题目来源 | cstdio 于2015-03-24加入 |
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
分享题解 |
通过:3, 提交:3, 通过率:100% | ||||
cstdio | 100 | 0.045 s | 0.41 MiB | C++ |
一個人的雨 | 100 | 0.053 s | 5.08 MiB | C++ |
Hexฏ๎๎๎๎๎๎๎๎๎ۣۣۣ | 100 | 0.086 s | 1.27 MiB | C++ |
关于 红色按钮 的近10条评论(全部评论) | ||||
---|---|---|---|---|
Piegirl最终找到了红色按钮。你只有最后一次机会来改变必然的结局。
按钮下的电路包含n个节点,从0到n-1编号。为了让按钮失效,你需要按照特定的顺序来拆除这n个节点。节点0必须被最先拆除。在拆除节点i后,下一个被拆除的节点必须是(2*i) mod n或者(2*i+1) mod n。最后一个被拆除的节点必须是0.节点0必须被拆除两次,但其他节点必须被拆除恰好一次。
你的任务是找到任意一个可行的拆除顺序并输出它。如果没有这样的方案,输出-1.
一行一个整数n(2<=n<=10^5)。
输出拆除所有节点的顺序。如果这是不可能的,就输出-1.如果有多种不同的顺序,输出任意一种。
2
0 1 0
3
-1
4
0 1 3 2 0
16
0 1 2 4 9 3 6 13 10 5 11 7 15 14 12 8 0