#include <iostream> #include <bitset> #include <vector> using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int a, b = 0, licz = 0, n = 0, s = 0; cin>>a; while(a > licz) { b++; licz += bitset<20>(b).count(); } n = b; if(licz > a) { b--; while(licz !=(a + bitset<20>(b).count())) { b--; } s = b; cout<<n-1<<"\n"; } else cout<<n<<"\n"; for(int i = n; i > 0; i--) { if(i != s) { cout<<i<<" "; } } }
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 | #include <iostream> #include <bitset> #include <vector> using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int a, b = 0, licz = 0, n = 0, s = 0; cin>>a; while(a > licz) { b++; licz += bitset<20>(b).count(); } n = b; if(licz > a) { b--; while(licz !=(a + bitset<20>(b).count())) { b--; } s = b; cout<<n-1<<"\n"; } else cout<<n<<"\n"; for(int i = n; i > 0; i--) { if(i != s) { cout<<i<<" "; } } } |