Problem 4B. 后缀机器
Problem 4B. 后缀机器
Limits
时间限制:1000ms
内存限制:256MB
Description
由于小周之前做好了充分的准备,所以在遗迹中打怪没有遇到任何困难,很快就和朱朱来到了最后的房间。在这个房间里,只有一台机器,机器的屏幕上写着“有两个不同的单词(英文字母串),\(s\) 和 \(t\) 。你需要把通过后缀数据结构将单词 \(s\) 转换成单词 \(t\)。”在机器上有四个按钮,分别是 : automaton (后缀自动机), array(后缀数组), both (都需要), tree (后缀树).
小周和朱朱在讨论之后,发现了一件非常幸运的事情:小周对后缀自动机( suffix automaton )非常熟悉,将其运用于字符串一次可以删去字符串中的任意一个字符;朱朱曾经研究过后缀数组( suffix array ),将其运用于字符串一次可以将字符串中的任意两个字符交换位置。小周和朱朱都对后缀树( suffix tree )很不熟悉,但是他们都知道这个数据结构可以做更多事情。
在机器上面还贴着一张纸条,写的是这个遗迹的建造者研究后缀数据结构的一些心情,最后一段话写道:为了给后人留下一些挑战,所以我设计了这个机器,只要按下正确的按钮,就能打开地下室的通道。为了进入地下室探寻最后的秘密,朱朱和小周需要思考哪个是正确的按钮。
说明:任何数据结构都可以无限次使用,这些数据结构可以按任何顺序使用。
Input
输入包括两行,每行一个字符串,分别代表字符串 \(s\) 和 \(t\).
输入保证两个字符串都是由小写字母构成的,而且 两个字符串是不同的 。
Output
输出一行,表示要按下的按钮。
\(automaton\) 代表只需要使用后缀自动机,
\(array\) 代表只需要使用后缀数组,
\(both\) 代表后缀自动机和后缀数组都需要用,
\(tree\) 代表无论怎样使用后缀自动机和后缀数组都无法实现,需要用到后缀树。
可以证明如果能只用后缀自动机完成,那么一定不能只用后缀数组完成;反之如果能只用后缀数组完成,那么一定不能只用后缀自动机完成。
Samples
Sample Input 1
automaton
tomat
Sample Output 1
automaton
Sample Input 2
array
arary
Sample Output 2
array
Sample Input 3
both
hot
Sample Output 3
both
Sample Input 4
need
tree
Sample Output 4
tree
Data range
对于 50% 数据,\(2 \leq len(s), len(t) \leq 100\) ;
对于 100% 数据,\(2 \leq len(s), len(t) \leq 10^5\) .