**Geometric Mean Inequality Codechef Solution**

You are given an array A of length N containing the elements −1 and 1 only. Determine if it is possible to rearrange the array A in such a way that Ai is not the geometric mean of Ai−1 and Ai+1, for all i such that 2≤i≤N−1. Y is said to be the geometric mean of X and Z if Y2=X⋅Z.

**Input Format**

- The first line contains a single integer T – the number of test cases. Then the test cases follow.
- The first line of each test case contains an integer N – the size of the array A.
- The second line of each test case contains N space-separated integers A1,A2,…,AN denoting the array A.

**Output Format**

- For each test case, output Yes if it is possible to rearrange A in such a way that Ai is not the geometric mean of Ai−1 and Ai+1, where 2≤i≤N−1. Otherwise output No.
- You may print each character of Yes and No in uppercase or lowercase (for example, yes, yEs, YES will be considered identical).

**Constraints**

- 1≤T≤200
- 3≤N≤1000
- Ai∈{−1,1}

**Sample Input 1**

3

5

1 1 1 -1 -1

3

1 1 1

6

1 -1 -1 -1 -1 1

**Sample Output 1**

Yes

No

Yes

**Explanation**

- Test case 1: We can rearrange the array A to [1,1,−1,−1,1]. One can see that Ai2≠Ai−1⋅Ai+1, for any 2≤i≤N−1.
- Test case 2: None of the rearrangements of A satisy the given condition.

**SOLUTION**

**Program: Geometric Mean Inequality Codechef Solution** in Python

```
# cook your dish here
for _ in range(int(input())):
n=int(input())
a=0
b=0
l=list(map(int,input().split()))
for i in range(n):
if l[i]==-1:
a+=1
else:
b+=1
if(abs(a-b)<2):
print("YES")
elif(abs(a-b)==2):
if a%2:
print("NO")
else:
print("YES")
else:
print("NO")
```

**Related:**