1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
def min_operations(test_cases):
    results = []
    for case in test_cases:
        n, arr = case
        operations = 0
        for i in range(n-1):
            if arr[i] % 2 != 0:
                # Perform operation on i and i+1
                arr[i] += 1
                arr[i+1] += 1
                operations += 1
        # Check if all elements are even
        if all(x % 2 == 0 for x in arr):
            results.append(operations)
        else:
            results.append(-1)
    return results

# Read input
import sys
input = sys.stdin.read().split()
idx = 0
t = int(input[idx])
idx +=1
test_cases = []
for _ in range(t):
    n = int(input[idx])
    idx +=1
    arr = list(map(int, input[idx:idx+n]))
    idx +=n
    test_cases.append((n, arr))

# Process test cases
results = min_operations(test_cases)

# Output results
for res in results:
    print(res)