#include <bits/stdc++.h> using namespace std; int n, wyn, wsk=1; vector<int> v, odp; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n; while(wyn<n) { v.push_back(__builtin_popcount(wsk)); wyn+=__builtin_popcount(wsk); wsk++; } while(!v.empty()) { if((wyn-v.back())>=n) wyn-=v.back(); else odp.push_back(v.size()); v.pop_back(); } cout << odp.size() << '\n'; for(int i=0; i<odp.size(); i++) cout << odp[i] << ' '; 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 | #include <bits/stdc++.h> using namespace std; int n, wyn, wsk=1; vector<int> v, odp; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n; while(wyn<n) { v.push_back(__builtin_popcount(wsk)); wyn+=__builtin_popcount(wsk); wsk++; } while(!v.empty()) { if((wyn-v.back())>=n) wyn-=v.back(); else odp.push_back(v.size()); v.pop_back(); } cout << odp.size() << '\n'; for(int i=0; i<odp.size(); i++) cout << odp[i] << ' '; return 0; } |