Help me in solving REMOSET problem,i am unable to understand given sample test case,i am a begineer

include <bits/stdc++.h>
using namespace std;
long long int powe (int n){
if(n==0)return 1;
if(n==1)return 2;

``````if(n%2)return 2* (powe(n/2)*powe(n/2));
return  (powe(n/2)*powe(n/2));
``````

}
int main() {
int t;
cin>>t;

``````while(t--){
int n;
cin>>n;

int arr[n],even=0,odd=0;
long long int sum = 0,ans=0;
for(int i=0;i<n;i++){
cin>>arr[i];
if(arr[i]%2==0)even++;
else odd++;
sum+=arr[i];
}

if(sum%2){
int temp = odd;
odd--;
even+=odd/2;
ans+=powe(even)*temp;

}
else{
even+=odd/2;
ans+=powe(even);
}

cout<<ans<<endl;
}
return 0;
``````

}

@learner84
Actually whats the question demands is that u have to find the number of subarrays after the removal of indexes having only even numbers or empty subarray.
This is the code i have coded. Its quite easy to understand.
include
using namespace std;

int main() {
int t;
cin>>t;
while(t–)
{
int n;
cin>>n;
int a[n];
int cnt=0,ch=0;
for(int i=0;i<n;i++)
{
cin>>a[i];
if(a[i]%2==0)
{
cnt++;
}
else
ch=1;
}
long long int ans=1;
for(int i=0;i<cnt;i++)
{
ans=(ans*2)%1000000007;
}
if(!ch)
ans–;
cout<<ans<<endl;
}
return 0;
}

the logic is what we aim for subarrays having even numbers so we count the even numbers and calculate its (power of 2) to generate all possibilities. but there is a case in which one possibility has to be subtracted and this is the case when all the numbers in an array are even . In this case answer would be their (power of 2) -1.