Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdio>
- #include <cstring>
- #include <algorithm>
- #include <cstdlib>
- #include <vector>
- #define SF scanf
- #define PF printf
- #define TESTCASE int t;scanf("%d", &t);while(t--)
- #define FOR(n) for(int i = 0; i < n; i++)
- using namespace std;
- int set_bit(int n, int position)
- {
- return n | (1 << position);
- }
- int clear_bit(int n, int position)
- {
- return n & (~(1 << position));
- }
- bool get_bit(int n, int position)
- {
- return n & (1 << position);
- }
- int main()
- {
- int tc = 1;
- int n, temp;
- TESTCASE
- {
- cin >> n;
- bool flag = 0;
- int count = 0;
- FOR(32)
- {
- if(get_bit(n, i))
- {
- //cout << '~' << get_bit(n, i) << endl;
- for(int j = i; j < 32; j++)
- {
- if(!get_bit(n, j))
- {
- // cout << '~' << get_bit(n, j) << endl;
- flag = 1;
- n = set_bit(n, j);
- temp = j-1;
- break;
- }
- }
- }
- if(flag)
- {
- //cout << flag << endl;
- for(int k = temp; k >= 0; k--)
- {
- if(get_bit(n, k))
- {
- //cout << '~' << get_bit(n, k) << endl;
- count++;
- n = clear_bit(n, k);
- }
- //cout << k << endl;
- }
- }
- if(flag) break;
- }
- FOR(count-1)
- {
- n = set_bit(n, i);
- }
- PF("Case %d: %d\n", tc++, n);
- //cout << n << endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement