palidrome question do not know why it is failing

#include
#include<bits/stdc++.h>
using namespace std;

int main() {
int t;
cin>>t;
while(t–){
int n;
cin>>n;
vector v;
for(int i=1;i<=n;i++){
if(i%2==1){
int k=log2(i)+1;
int x=i;
int arr[k];
for(int j=k-1;j>=0;j–){
arr[j]=x%2;
x=x/2;
}
int flag=1;
for(int j=0;j<k/2;j++){
if(arr[j]!=arr[k-1-j]){
flag=0;
break;
}
}
if(flag){
v.push_back(i);
}
}
}
int ans=0;
int size=v.size();
int l=0;
int h=size-1;
int sum=0;
if(n==1){
cout<<1<<endl;
cout<<1<<endl;
}
else if(n%2==0){
while(l<=h){
sum=v[l]+v[h];
if(sum==n){
cout<<2<<endl;
cout<<v[l]<<" “<<v[h]<<endl;
break;
}
else if(sum>n){
h–;
}
else{
l++;
}
}
}
else{
n=n-1;
while(l<=h){
sum=v[l]+v[h];
if(sum==n){
cout<<3<<endl;
cout<<1<<” “<<v[l]<<” "<<v[h]<<endl;
break;
}
else if(sum>n){
h–;
}
else{
l++;
}
}
}
}
// your code goes here
return 0;
}