#L5105. 「POI2009 R3」单词 Words

「POI2009 R3」单词 Words

题目描述

题目译自 XVI OI Olimpiada Informatyczna – III etap Słowa

hh 为定义在由数字 0\texttt{0}1\texttt{1} 组成的字符串上的函数。函数 hh 将字符串 ww 转换为新字符串,规则为:同时且独立地将每个 0\texttt{0} 替换为 1\texttt{1},每个 1\texttt{1} 替换为字符串 10\texttt{10}。例如,h(1001)=101110h(\texttt{1001}) = \texttt{101110}h("")=""h(\texttt{""}) = \texttt{""}(即空字符串映射为空字符串)。显然,hh 是一一映射。记 hkh^k 为函数 hh 与自身 kk 次复合,特别地,h0h^0 为恒等函数,即 h0(w)=wh^0(w) = w

我们关注形如 hk(0)h^k(\texttt{0}) 的字符串,其中 k=0,1,2,3,k = 0, 1, 2, 3, \ldots。以下是前几个字符串:
0\texttt{0}, 1\texttt{1}, 10\texttt{10}, 101\texttt{101}, 10110\texttt{10110}, 10110101\texttt{10110101}

若字符串 xxyy 的子串,则 xx 作为 yy 的连续子序列出现。给定自然数序列 k1,k2,,knk_1, k_2, \ldots, k_n,任务是判断字符串

[ h^{k_1}(\texttt{0}) \cdot h^{k_2}(\texttt{0}) \cdot \ldots \cdot h^{k_n}(\texttt{0}) ]

是否为某个 hm(0)h^m(\texttt{0}) 的子串,其中 \cdot 表示字符串拼接(连接)。


输入格式

第一行包含一个整数 tt (1t131 \leq t \leq 13),表示测试数据组数。

每组测试数据包含:

  • 第一行:一个整数 nn (1n1000001 \leq n \leq 100000)。
  • 第二行:nn 个非负整数 k1,k2,,knk_1, k_2, \ldots, k_n,用单空格分隔。每组测试数据中第二行数字之和不超过 1000000010000000

输出格式

输出 tt 行,每行对应一组测试数据,若 $h^{k_1}(\texttt{0}) \cdot h^{k_2}(\texttt{0}) \cdot \ldots \cdot h^{k_n}(\texttt{0})$ 是某个 hm(0)h^m(\texttt{0}) 的子串,输出 TAK\texttt{TAK},否则输出 NIE\texttt{NIE}


样例

输入

2
2
1 2
2
2 0

输出

TAK
NIE

解释

  • 第一组测试数据的字符串为 110\texttt{110}h1(0)=1h^1(\texttt{0}) = \texttt{1}, h2(0)=10h^2(\texttt{0}) = \texttt{10},拼接得 110\texttt{110}),它是 h4(0)=10110h^4(\texttt{0}) = \texttt{10110} 的子串。
  • 第二组测试数据的字符串为 100\texttt{100}h2(0)=10h^2(\texttt{0}) = \texttt{10}, h0(0)=0h^0(\texttt{0}) = \texttt{0},拼接得 100\texttt{100}),它不是任何 hm(0)h^m(\texttt{0}) 的子串。