#include#include#include
using namespacestd;const int MaxLen = 20;classMap {private:boolvist[MaxLen];intmatrix[MaxLen][MaxLen];intvexnum;void BFS(intv);public:void setmatrix(int vnum, intmx[MaxLen][MaxLen]);voidBFSTraverse();
};void Map::setmatrix(int vnum, intmx[MaxLen][MaxLen]){inti, j;
vexnum=vnum;for (i = 0; i < MaxLen; i++)for (j = 0; j < MaxLen; j++)
matrix[i][j]= 0;for (i = 0; i < vexnum; i++)for (j = 0; j < vexnum; j++)
matrix[i][j]=mx[i][j];
}voidMap::BFSTraverse(){
BFS(0);
}void Map::BFS(intv){intw, u;inti, k;int *adjvex = new int[vexnum];
queueQ;for (i = 0; i < vexnum; i++)
vist[i]= false;for (v = 0; v < vexnum; ++v)
{if (!vist[v])
{
vist[v]= true;
cout<< v << " ";
Q.push(v);while (!Q.empty())
{
u=Q.front();
Q.pop();
k= 0;for (i = 0; i < vexnum; i++)
{if (matrix[u][i] == 1)
adjvex[k++] =i;
}
i= 0;for (w = adjvex[i]; w >= 0; w = adjvex[i++])if (!vist[w])
{
vist[w]= true;
cout<< w << " ";
Q.push(w);
}
}
}
}
}intmain(){int t,key=11;
cin>>t;while(t--)
{intm, n;
cin>> m >>n;int *a = new int[m];int *flag = new int[m];//用来标记这个位置有没有值
inti;for (i = 0; i < m; i++)
flag[i]= -1;for (i = 0; i < n; i++)
{intyu,x;
cin>>x;
yu= x %key;if (flag[yu] == -1)
{
a[yu]=x;
flag[yu]= 1;
}else{while (1)
{if (flag[yu] == -1)//找到一个空位置
{
a[yu]=x;
flag[yu]= 1;break;
}
yu++;
yu= yu %m;
}
}
}for (i = 0; i < m - 1; i++)
{if (flag[i] == -1)
cout<< "NULL" << " ";elsecout<< a[i] << " ";
}if (flag[i] == -1)
cout<< "NULL" <
cin>>k;while (k--)
{int x,count = 0, loc;
cin>>x;int yu = x % 11;int find = 0;while (true)
{if (flag[yu] == -1)
{
count++;break;
}if (a[yu] ==x)
{
count++;
loc=yu;
find= 1;break;
}
count++;
yu++;
yu= yu %m;
}if(find)
cout<< find << " " << count << " " << loc+1 <
}
}
}