I am unable to find error in my code (logic is correct)

LINK OF THE PROBLEM:-
https://www.codechef.com/problems/XOR1248
MY CODE:-
include <bits/stdc++.h>
using namespace std;
// define loop for (int i = 0; i <n; i++)
// define rloop for (int i = n-1; i >= 0; i–)
// define printspace cout<< <<" “;
// define printentre cout<< <<endl;
define debug(x) cerr << #x << " = " << x << endl
define debug2(x, y) cerr << #x << " = " << x << “, " << #y << " = " << y << endl
define endl (”\n”)
define pi (3.141592653589)
define ll long long
define float double
long long int m = 1152921504606846976;
long long int base_power(long long int base, long long int power)
{
if (power == 1)
return base % m;
long long int help = base_power(base, power / 2);
if (power & 1)
return (base * ((help * 1LL * help) % m)) % m;
else
return (help * help) % m;
}
int main()
{
int t;
cin >> t;
while (t–)
{
int n;
cin >> n;
// ll int a[n];
ll int bit[60] = {0};
for (int i = 0; i < n; i++)
{
int input;
cin >> input;
for (int j = 0; j <= 59; j++)
{
int last_bit = input & 1;
bit[j] = bit[j] + last_bit;
input = input >> 1;
}
}
// cout << “hii\n”;
for (int i = 59; i >= 1; i–)
{
if (bit[i] % 2 == 0 && bit[i] > 0)
{
bit[i]–;
for (int j = 0; j < i; j++)
{
if (bit[j] % 2 == 0 && j != 0)
bit[j]++;
}
break;
}
}
// cout << “byy\n”;
long long ans = 0;
// for (int i = 0; i <= 59; i++)
// cout << bit[i] << " ";
for (int i = 0; i <= 59; i++)
{
// cout << bit[i] << " ";
if (bit[i] % 2 != 0)
{
ans = ans + (long long int)(pow(2, i));
}
}
cout << ans << endl;
}
// ll ans = 1;
// for (int i = 1; i <= 60; i++)
// {
// ans = ans * 2;
// }
// cout << ans;
return 0;
}