#4356. 子集掩码(Submask)
子集掩码(Submask)
题目描述
给定一个非负整数 。请按升序输出所有满足以下条件的非负整数 :
- 的二进制表示中包含 的位置集合是 的二进制表示中包含 1 的位置集合的子集。
- 换句话说,对于每个非负整数 ,如果 从低到高第 位是 ,那么 从低到高第 位也必须是 。
输入格式
输入整数。
输出格式
按升序输出满足条件的所有整数,每个整数占一行。
样例
11
0
1
2
3
8
9
10
11
0
0
576461302059761664
0
524288
549755813888
549756338176
576460752303423488
576460752303947776
576461302059237376
576461302059761664
样例解释
【样例1说明】
满足条件的整数 有:
【样例3说明】
注意答案可能不适合位整数类型。
数据范围
是整数
的二进制表示中最多有 个位置包含 。
来源
- AtCoder ABC269C