#include<stdio.h>
#include<string.h>
int map[15][15];
int vis[15];
int main()
{
map[1][3] = map[3][1] = 2;
map[1][7] = map[7][1] = 4;
map[3][9] = map[9][3] = 6;
map[7][9] = map[9][7] = 8;
map[1][9] = map[9][1] = 5;
map[3][7] = map[7][3] = 5;
map[2][8] = map[8][2] = 5;
map[4][6] = map[6][4] = 5;
int t, i;
scanf("%d",&t);
for(i=1; i<=t; i++)
{
memset(vis, 0, sizeof(vis));
int k, j, s[15], f=1;
scanf("%d",&k);
for(j=0; j<k; j++)
{
scanf("%d",&s[j]);
if(s[j]>9 || s[j]<1)
f = 0;
}
if(k<4 || f==0)
{
printf("invalid\n");
continue;
}
vis[s[0]] = 1;
int flag = 1;
for(j = 1; j < k; j++)
{
if(vis[s[j]] == 1)
{
flag = 0;
break;
}
else if(map[s[j - 1]][s[j]] && !vis[map[s[j - 1]][s[j]]])
{
flag = 0;
break;
}
vis[s[j]] = 1;
}
if(flag)
printf("valid\n");
else
printf("invalid\n");
}
}
#include<string.h>
int map[15][15];
int vis[15];
int main()
{
map[1][3] = map[3][1] = 2;
map[1][7] = map[7][1] = 4;
map[3][9] = map[9][3] = 6;
map[7][9] = map[9][7] = 8;
map[1][9] = map[9][1] = 5;
map[3][7] = map[7][3] = 5;
map[2][8] = map[8][2] = 5;
map[4][6] = map[6][4] = 5;
int t, i;
scanf("%d",&t);
for(i=1; i<=t; i++)
{
memset(vis, 0, sizeof(vis));
int k, j, s[15], f=1;
scanf("%d",&k);
for(j=0; j<k; j++)
{
scanf("%d",&s[j]);
if(s[j]>9 || s[j]<1)
f = 0;
}
if(k<4 || f==0)
{
printf("invalid\n");
continue;
}
vis[s[0]] = 1;
int flag = 1;
for(j = 1; j < k; j++)
{
if(vis[s[j]] == 1)
{
flag = 0;
break;
}
else if(map[s[j - 1]][s[j]] && !vis[map[s[j - 1]][s[j]]])
{
flag = 0;
break;
}
vis[s[j]] = 1;
}
if(flag)
printf("valid\n");
else
printf("invalid\n");
}
}