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
#include <bits/stdc++.h>
using namespace std;
int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	int n; cin>>n;
	vector<int>pc(n+1);
	for (int i=1; i<=n; i++) pc[i]=pc[i>>1]+(i&1);
	partial_sum(pc.begin(), pc.end(), pc.begin());
	int k=n;
	vector<int>ans;
	while (n)
	{
		if (pc[k-1] < n)
		{
			n-=(pc[k]-pc[k-1]);
			ans.push_back(k);
		}
		k--;
	}
	cout<<ans.size()<<"\n";
	for (auto i : ans) cout<<i<<" ";
	cout<<"\n";
}