玉
シンプルな深さ優先探索。全通り試してOK。
int tama[11]; bool solve(int i, int n) { if (i == 10) { int al=-1, bl=-1; for (int j = 0; j < 10; j++) { if ((1<<j)&n) { if (al < tama[j]) al=tama[j]; else return false; } else { if (bl < tama[j]) bl=tama[j]; else return false; } } return true; } bool a = solve(i+1, n|(1<<i)); bool b = solve(i+1, n); return a || b; } int main() { while (1) { int N; cin >> N; for(int i = 0; i < N; i++) { for (int j = 0; j < 10; j++) { cin >> tama[j]; } if (solve(0, 0)) { cout << "YES" << endl; } else { cout << "NO" << endl; } } break; } return 0; }