UVA12206 Stammering Aliens
题目描述
艾莉·艾洛维博士成功和外星文明取得了联系。不过,破解他们的信息一直碰壁,因为他们碰上了一群口吃的外星人!她的团队发现,在每条足够长的信息中,最重要的词会以连续字符的形式重复出现多次,甚至夹杂在其他词中间。而且,有时候他们还会用一种晦涩的缩写方式。举个例子,如果他们想说 $$$\tt bab$$$ 两次,可能会直接发出 $$$\tt babab$$$ 这条消息,因为第一个单词的第二个 $$$\tt b$$$ 可以复用成第二个单词的第一个 $$$\tt b$$$。
所以,消息里可能会有同一个词反复重叠出现。于是,艾莉求助于你,S.R. 哈登,帮忙找出这条信息的核心内容。给定一个整数 $$$m$$$ 和一条字符串 $$$s$$$(代表消息),你的任务是找出 $$$s$$$ 中出现至少 $$$m$$$ 次的最长子串。例如,在消息 $$$\tt baaaababababbababbab$$$ 中,长度为 $5$ 的单词 $$$babab$$$ 出现了 $3$ 次,分别在位置 $5、7$ 和 $12$(索引从 $0$ 开始)。没有哪个子串出现 $3$ 次或以上的长度比它更长(参见样例输入的第一个例子)。反过来,没有哪个子串出现 $11$ 次或以上(参见第二个例子)。
如果有多个答案,优先输出最靠右出现的那个子串(参见第三个例子)。
输入格式
输入包含多个测试用例。每个测试用例由两行组成:第一行为一个整数 $$$m$$$($$$m \ge 1$$$),表示最小重复次数;第二行为一个字符串 $$$s$$$,长度介于 $$$m$$$ 和 $$$40000$$$ 之间(含)。字符串 $$$s$$$ 只包含小写字母 `a` 到 `z`。当 $$$m = 0$$$ 出现时,表示输入结束,该测试用例不需处理。
输出格式
每个测试用例输出一行结果。如果没有符合条件的子串,输出 `none`;否则输出两个整数,空格分隔。第一个整数是出现至少 $$$m$$$ 次的最长子串的长度,第二个整数是该子串最靠右出现的位置(起始索引)。