For this Question: You are given a number N. You need to Fix the middle bit of N in binary form and print the result in decimal form.

If number of bits in binary form of N are odd then Fix the middle bit (Like 111 to 101).
If number of bits in binary form of N are even then Fix both the middle bits (Like 1111 to 1001)

Note: Fixing a bit means converting a 0 to 1 and vice versa.The first line of input contains T denoting the number of test cases. T test cases follow. Each test case contains a single number N.

Constraints:
1 <= T <= 100
1 <= N <= 1000000For each test case, in a new line, print the decimal form after toggling the middle bit of N.Input:
5
1
2
3
4
5

Output:
0
1
0
6
7

Examples:
Test case 3: N = 3. Binary is 11. Toggle the middle bits: 00. 00 in decimal is 0
Test case 5: N = 5. Binary is 101. Toggle the middle bit: 111. 111 in decimal is 7, I have written this Solution Code: #include<bits/stdc++.h>
using namespace std;

#define pu push_back
#define fi first
#define se second
#define mp make_pair
#define int long long
#define pii pair<int,int>
#define mm (s+e)/2
#define all(x) x.begin(), x.end()
#define For(i, st, en) for(int i=st; i<en; i++)
#define tr(x) for(auto it=x.begin(); it!=x.end(); it++)
#define fast std::ios::sync_with_stdio(false);cin.tie(NULL);
#define sz 200000
int C[sz];
signed main()
{
	
        int t;
        cin>>t;
        while(t>0)
        {
        	t--;
        	int n;
        	vector<int> A;
        	cin>>n;
        	while(n>0)
        	{
        		int p=n%2;

        		n/=2;
        		A.pu(p);
        	}
        	int x=A.size();
        	if(x%2==1)
        	{
        		A[x/2]=1-A[x/2];
        	}else
        	{
        		A[x/2]=1-A[x/2];
        		A[(x-1)/2]=1-A[(x-1)/2];
        	}
        	int ans=0;
        	int y=1;
        	for(int i=0;i<A.size();i++)
        	{
        		ans+=y*A[i];
        		y*=2;
        	}
        	cout<<ans<<endl;
        }
	
}, In this Programming Language: C++, Now tell me if this Code is compilable or not?