#pragma warning(disable:4996) #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include //#pragma comment(linker, "/STACK:202400000,202400000") //不需要申请系统栈 using namespace std; int a[110]; bool vis[11]; int ju[11][11]; void init() { int i, j, cy; ju[2][6] = 4; ju[6][2] = 4; for (i = 0; i < 9; i++) { cy = i + 2; if (i / 3 == cy / 3 && cy<9) { ju[i][cy] = (i + cy) / 2; ju[cy][i] = (i + cy) / 2; } cy = i + 6; if (i % 3 == cy % 3 && cy<9) { ju[i][cy] = (i + cy) / 2; ju[cy][i] = (i + cy) / 2; } cy = i + 8; if (cy < 9) { ju[i][cy] = (i + cy) / 2; ju[cy][i] = (i + cy) / 2; } } } int main() { int t, i, j, n, m, cy, tp, ans; init(); scanf("%d", &t); while (t--) { scanf("%d", &n); for (i = 1; i <= n; i++) { scanf("%d", &a[i]); a[i]--; } if (n < 4) { puts("invalid"); continue; } memset(vis, false, sizeof(vis)); for (i = 1; i <= n; i++) { if (a[i] < 0 || a[i]>8)break; if (vis[a[i]])break; if (i > 1 && ju[a[i]][a[i - 1]] && !vis[ju[a[i]][a[i - 1]]])break; vis[a[i]] = true; } if (i > n)puts("valid"); else puts("invalid"); } return 0; }