#4646. Submask

0

Submask

Submask

题目描述

给定一个非负整数 NN。按升序打印所有满足下列条件的非负整数 xx。

在 xx 的二进制表示中包含 11 的位的位置集合是 NN 的二进制表示中包含 11 的位的位置集合的子集。 也就是说,对于任意非负整数 kk,如果 xx 在 2k2^k 位上的数字是 11,则 NN 在 2k2^k 位上的数字也是 11。

输入格式

输入从标准输入按以下格式给出: NN

输出格式

按升序每行打印一个十进制整数作为答案。

11
0
1
2
3
8
9
10
11
0
0
576461302059761664
0
524288
549755813888
549756338176
576460752303423488
576460752303947776
576461302059237376
576461302059761664

提示

NN 是一个整数。 0 \le N < 2^{60} 在 NN 的二进制表示中,最多有 1515 个位位置包含 11。N=11(10)N = 11_{(10)} 的二进制表示是 1011(2)1011_{(2)}.
满足条件的非负整数 xx 为:

0000(2)=0(10)0000_{(2)}=0_{(10)} 0001(2)=1(10)0001_{(2)}=1_{(10)} 0010(2)=2(10)0010_{(2)}=2_{(10)} 0011(2)=3(10)0011_{(2)}=3_{(10)} 1000(2)=8(10)1000_{(2)}=8_{(10)} 1001(2)=9(10)1001_{(2)}=9_{(10)} 1010(2)=10(10)1010_{(2)}=10_{(10)} 1011(2)=11(10)1011_{(2)}=11_{(10)}
输入可能无法放入 32 位带符号整数。

标签: AtCoder|abc269C

来源

AtCoder|abc269C