Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <algorithm>
- #include <queue>
- #include <cstring>
- #include <map>
- using namespace std;
- typedef long long ll;
- const int maxn = 1e5 + 10;
- const ll INF = 1e16;
- int main()
- {
- ll N;
- cin >> N;
- ll element = 1;
- ll step = 1;
- ll remaining = N;
- bool mile = true;
- while(remaining > 1) {
- if(mile) {
- remaining = (remaining + 1) / 2;
- }
- else {
- if(remaining % 2 == 0) {
- element += step;
- remaining /= 2;
- }
- else {
- remaining = (remaining + 1) / 2;
- }
- }
- step *= 2;
- mile = !mile;
- }
- cout << element << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment