t=int(input())
for i in range(t):
n=int(input())
arr=list(map(int,input().split()))
js=0
os=0
cnt=0
for i in arr:
if i%2==0:
os+=1
else:
js+=1
if n%2==0:
if(os-js>1 or js-os>1):
print(-1)
continue
else:
if(os-js!=1):
print(-1)
continue
for i in range(0,n,2):
if arr[i]%2!=0:
cnt+=1
print(cnt)
#include<bits/stdc++.h>
using namespace std;
int main()
{
int t;
cin>>t;
int n;
vector<int> veven,vodd;
for(int i=0;i<t;i++)
{
veven.clear();
vodd.clear();
cin>>n;
int a[n];
for(int j=0;j<n;j++)
{
cin>>a[j];
if(j%2==0&&a[j]%2!=0)
vodd.emplace_back(a[j]);
else if(j%2!=0&&a[j]%2==0)
veven.emplace_back(a[j]);
}
if(vodd.size()==veven.size())
cout<<vodd.size()<<endl;
else
cout<<-1<<endl;
}
return 0;
}
2148. Count Elements With Strictly Smaller and Greater Elements | 2149. Rearrange Array Elements by Sign |
2150. Find All Lonely Numbers in the Array | 2151. Maximum Good People Based on Statements |
2144. Minimum Cost of Buying Candies With Discount | Non empty subsets |
1630A - And Matching | 1630B - Range and Partition |
1630C - Paint the Middle | 1630D - Flipping Range |
1328A - Divisibility Problem | 339A - Helpful Maths |
4A - Watermelon | 476A - Dreamoon and Stairs |
1409A - Yet Another Two Integers Problem | 977A - Wrong Subtraction |
263A - Beautiful Matrix | 180C - Letter |
151A - Soft Drinking | 1352A - Sum of Round Numbers |
281A - Word Capitalization | 1646A - Square Counting |
266A - Stones on the Table | 61A - Ultra-Fast Mathematician |
148A - Insomnia cure | 1650A - Deletions of Two Adjacent Letters |
1512A - Spy Detected | 282A - Bit++ |
69A - Young Physicist | 1651A - Playoff |