#include<stdio.h>
#include<vector>
using namespace std;
vector<int> arr[1000005];
int s[1000005]={0};
int in[1000005];
int main(){
int n,m,t,i,j,k,ed,flag,l,r,mi;
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&k);
arr[k].push_back(i);
}
scanf("%d",&t);
while(t--){
flag=1,ed=-1;
scanf("%d",&m);
for(i=0;i<m;i++){
scanf("%d",&in[i]);
if(!flag) continue;
l=s[in[i]],r=arr[in[i]].size();
while(l+1<r && r){
mi=(l+r)/2;
if(arr[in[i]][mi]<ed) l=mi;
else r=mi;
}
s[in[i]]=l;
while(s[in[i]]<arr[in[i]].size() && arr[in[i]][s[in[i]]]<ed) s[in[i]]++;
if(s[in[i]]>=arr[in[i]].size() || arr[in[i]][s[in[i]]]<ed){
flag=0;
continue;
}
ed=arr[in[i]][s[in[i]]++];
}
for(i=0;i<m;i++)
s[in[i]]=0;
if(flag) puts("TAK");
else puts("NIE");
}
}
沒有留言:
張貼留言