유압 팔

아직 제출이 없습니다시간 제한1초메모리 제한256 MB

문제

양계장에서 달걀 상자를 시장으로 보내려고 한다. 상자마다 높이가 달라서 싣는 순서를 신경 써야 한다. 상자를 세워서 싣되, 가장 낮은 상자부터 가장 높은 상자까지 높이 순서대로 정렬해 보내기로 했다.

왼쪽 벨트, 위쪽 선반, 오른쪽 벨트 사이에서 상자를 옮기는 유압 팔

양계장에는 유압 팔이 하나 있고, 팔은 한 번에 다음 세 동작 중 하나만 한다.

  1. 왼쪽 벨트에서 팔 앞에 와 있는 상자를 집어 위쪽 선반의 맨 왼쪽에 놓는다.
  2. 위쪽 선반의 맨 왼쪽 상자를 집어 오른쪽 벨트의 맨 왼쪽에 놓는다.
  3. 왼쪽 벨트에서 팔 앞에 와 있는 상자를 집어 오른쪽 벨트의 맨 왼쪽에 놓는다.

선반은 맨 왼쪽에서만 넣고 뺀다. 즉 선반에 가장 나중에 올린 상자가 가장 먼저 내려온다. 작업 속도를 위해 팔은 오른쪽 벨트에 이미 놓인 상자를 다시 건드리지 못한다.

왼쪽 벨트의 상자는 a1,a2,,aNa_1, a_2, \dots, a_N 순서로 팔 앞에 도착한다. a1a_1을 가장 먼저 집고 aNa_N을 가장 나중에 집는다. 새로 옮기는 상자는 항상 오른쪽 벨트의 맨 왼쪽에 놓이므로, 먼저 놓은 상자가 더 오른쪽에 남는다. 목표는 모든 상자를 오른쪽 벨트로 옮기고, 그 결과가 맨 왼쪽이 가장 높고 맨 오른쪽이 가장 낮은 상태가 되게 하는 것이다. 다시 말해 높이가 낮은 상자부터 차례대로 오른쪽 벨트에 놓아야 한다.

상자가 팔 앞에 도착하는 순서가 주어질 때, 원하는 상태를 만들 수 있는지 판정하는 프로그램을 작성하시오.

입력

첫째 줄에 테스트 케이스의 개수 TT (1T201 \le T \le 20)가 주어진다.

각 테스트 케이스의 첫째 줄에는 상자의 개수 NN (1N100001 \le N \le 10\,000)이 주어진다. 둘째 줄에는 팔이 집는 순서대로 상자의 높이 a1,a2,,aNa_1, a_2, \dots, a_N (1aiN1 \le a_i \le N)이 주어진다. 높이가 같은 상자는 없다.

출력

각 테스트 케이스마다 한 줄에 답을 출력한다. 원하는 상태를 만드는 방법이 있으면 yes를, 어떤 방법으로도 만들 수 없으면 no를 출력한다. 두 단어 모두 소문자로 출력한다.