#include<bits/stdc++.h> using namespace std; #define st first #define nd second #define pb push_back #define sz(x) (int)x.size() #define all(x) x.begin(),x.end() #define sor(x) sort(all(x)) #define rev(x) reverse(all(x)) #define rsz(x) resize(x) #define BOOST ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); typedef long long ll; typedef pair<int,int>pii; typedef long double ldl; typedef pair<ll,ll>pll; typedef vector<int> vi; typedef vector<ll> vl; typedef vector<pii> vii; typedef vector<pll>vll; typedef unsigned long long ul; int main() { BOOST int n; cin>>n; int cnt=0; int last=0; while(cnt < n) { last++; cnt+=__builtin_popcount(last); } int r = cnt-n; if(r) cout<<last-1<<'\n'; else cout<<last<<'\n'; bool used=0; for(int i = last ; i > 0 ; i--) { if(!used && __builtin_popcount(i)==r) { used = 1; continue; } cout<<i<<' '; } cout<<'\n'; 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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | #include<bits/stdc++.h> using namespace std; #define st first #define nd second #define pb push_back #define sz(x) (int)x.size() #define all(x) x.begin(),x.end() #define sor(x) sort(all(x)) #define rev(x) reverse(all(x)) #define rsz(x) resize(x) #define BOOST ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); typedef long long ll; typedef pair<int,int>pii; typedef long double ldl; typedef pair<ll,ll>pll; typedef vector<int> vi; typedef vector<ll> vl; typedef vector<pii> vii; typedef vector<pll>vll; typedef unsigned long long ul; int main() { BOOST int n; cin>>n; int cnt=0; int last=0; while(cnt < n) { last++; cnt+=__builtin_popcount(last); } int r = cnt-n; if(r) cout<<last-1<<'\n'; else cout<<last<<'\n'; bool used=0; for(int i = last ; i > 0 ; i--) { if(!used && __builtin_popcount(i)==r) { used = 1; continue; } cout<<i<<' '; } cout<<'\n'; return 0; } |