1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <bits/stdc++.h>
using namespace std;

int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);

    int n; cin >> n;
    int s, i;
    for(s = 0, i = 0; s < n; s += __builtin_popcount(++i));
    // cerr << i << ' ' << s << endl;
    vector<int> sol;
    sol.reserve(i);
    for(i; i>0; --i) {
        int pc = __builtin_popcount(i);
        if(s-pc >= n) s -= pc;
        else sol.push_back(i);
    }
    cout << sol.size() << '\n';
    for(auto &&e : sol) cout << e << ' ';
    cout << '\n';
}