#include <bits/stdc++.h>
using namespace std;
int t[1000005];
int main () {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n;
cin >> n;
int x = 0;
int i;
for (i = 1; x <= n; i++) {
x += __builtin_popcount(i);
t[i] = x;
}
int m = 0;
vector<int> v;
while (i >= 2) {
while (i >= 2 && t[i-1] >= n) {
i--;
}
m++;
v.push_back(i);
n -= __builtin_popcount(i);
}
cout << m << "\n";
for (auto el : v)
cout << el << " ";
return 0;
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | #include <bits/stdc++.h> using namespace std; int t[1000005]; int main () { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n; cin >> n; int x = 0; int i; for (i = 1; x <= n; i++) { x += __builtin_popcount(i); t[i] = x; } int m = 0; vector<int> v; while (i >= 2) { while (i >= 2 && t[i-1] >= n) { i--; } m++; v.push_back(i); n -= __builtin_popcount(i); } cout << m << "\n"; for (auto el : v) cout << el << " "; return 0; } |
English