Help me in solving ANDSUBAR problem

My issue

My code

#include <bits/stdc++.h>
#include <cmath>
#define mod7 1000000007
#define l1 long long
#define loop(s, e, inc) for(l1 i = s; i <= e; i += inc)
#define rev(e, s, dec) for(l1 i = e; i >= s; i -= dec)

using namespace std;

int main() {
    int tc;
    
    cin >> tc;
    
    for(long long int i = 0; i < tc; i++) {
        long long int N;
        
        cin >> N;
        
        long long int d = floor(log2(N)) + 1;
        cout << max(N - pow(2, d - 1) + 1, pow(2, d - 2)) << endl;
    }
	
    return 0;
}

Problem Link: ANDSUBAR Problem - CodeChef