0033 - Ball

#include <iostream>
using namespace std;

bool flg;

void dfs(int A[], int B, int C, int count)	{
	if (count == 10)	flg=true;
	else	{
		if (B==0 && C==0)	{
			dfs(A,A[count],C,count+1);
			dfs(A,B,A[count],count+1);
		}
		else	{
			if (A[count] > B)	dfs(A,A[count],C,count+1);
			if (A[count] > C)	dfs(A,B,A[count],count+1);
		}
	}
}

void Slove(int N)	{
	int A[10];

	for (int i=0; i<N; ++i)	{
		for (int j=0; j<10; ++j)
			cin >> A[j];
		flg=false;
		dfs(A,0,0,0);
		cout << (flg? "YES" : "NO") << endl;
	}
}

int main(void)	{
	int N;

	while (cin >> N)
		Slove(N);
	return 0;
}

再帰で全探索した。