atcoder#ABC269C. [ABC269C] Submask

[ABC269C] Submask

配点 : 300300

問題文

非負整数 NN が与えられるので、以下の条件を満たす非負整数 xx を昇順に全て出力してください。

  • xx22 進数として表記した時に 11 となる位の集合が、 NN22 進数として表記した時に 11 となる位の集合の部分集合となる。- すなわち、全ての非負整数 kk について、「 xx2k2^k の位が 11 ならば、 NN2k2^k の位は 11 」が成り立つ。
  • すなわち、全ての非負整数 kk について、「 xx2k2^k の位が 11 ならば、 NN2k2^k の位は 11 」が成り立つ。

制約

  • NN は整数
  • 0N<2600 \le N < 2^{60}
  • NN22 進数として表記した時、 11 となる位は 1515 個以下である

入力

入力は以下の形式で標準入力から与えられる。

NN

出力

答えを 11 行に 11 つずつ、1010 進法の整数として昇順に出力せよ。

11
0
1
2
3
8
9
10
11

N=11(10)N = 11_{(10)}22 進数で表記すると、 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)}
0
0
576461302059761664
0
524288
549755813888
549756338176
576460752303423488
576460752303947776
576461302059237376
576461302059761664

入力は 3232bit 符号付き整数に収まらない可能性があります。