Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define int long long
- using namespace std;
- int32_t main()
- {
- unsigned int n;
- cin >> n;
- unsigned int now = 1;
- while(now<<1U <= n)
- now <<= 1U;
- string s;
- while(now >= 1U){
- if(n >= now)
- n -= now, s += '1';
- else
- s += '0';
- now >>= 1U;
- }
- unsigned int ans = 1;
- now = 1;
- bool fnd = false;
- for(char i : s){
- if(now == 1 && i == '1')
- now++;
- else if ((i == '1' && fnd) || (i == '0' && !fnd))
- now++, fnd = 1 - fnd;
- else {
- ans = max(ans, now);
- fnd = false;
- now = 1;
- }
- }
- ans = max(ans, now);
- cout << ans;
- }
Advertisement
Add Comment
Please, Sign In to add comment