# Hackerrank Piling Up! Solution

There is a horizontal row of N cubes. The length of each cube is given. You need to create a new vertical pile of cubes. The new pile should follow these directions: if is on top of then .

There is a horizontal row of N cubes. The length of each cube is given. You need to create a new vertical pile of cubes. The new pile should follow these directions: if is on top of then .

When stacking the cubes, you can only pick up either the leftmost or the rightmost cube each time. Print * "Yes"* if it is possible to stack the cubes. Otherwise, print

*. Do not print the quotation marks.*

*"No"***Input Format**

The first line contains a single integer , the number of test cases.

For each test case, there are lines.

The first line of each test case contains , the number of cubes.

The second line contains space separated integers, denoting the * sideLengths* of each cube in that order.

**Constraints**

**Output Format**

For each test case, output a single line containing either * "Yes"* or

*without the quotes.*

*"No"***Sample Input**

```
2
6
4 3 2 1 3 4
3
1 3 2
```

**Sample Output**

```
Yes
No
```

**Explanation**

In the first test case, pick in this order: ** left - , right - , left - , right - , left - , right - **.

In the second test case, no order gives an appropriate arrangement of vertical cubes. will always come after either or .

### Solution in Python

```
from collections import deque
def check(d):
while d:
big = d.popleft() if d[0]>d[-1] else d.pop()
if not d:
return "Yes"
if d[-1]>big or d[0]>big:
return "No"
for i in range(int(input())):
int(input())
d = deque(map(int,input().split()))
print(check(d))
```