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

int pref_popcount[125007];
vector<int> res;

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

    int n; cin >> n;
    for(int i=1; i<=125000; i++) pref_popcount[i] = pref_popcount[i-1] + __builtin_popcount(i);
    for(int i=125000; i>0; i--){
        if(pref_popcount[i-1] < n){
            res.push_back(i);
            n -= __builtin_popcount(i);
        }
    }
    cout << res.size() << '\n';
    for(int i:res) cout << i << ' ';
}