CF2010C2.Message Transmission Error (hard version)
普及+/提高
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
这是一个难度较高的问题。它与简单版的区别仅在于约束条件不同。
在伯兰州立大学,服务器之间的本地网络并非总是运行无误。当连续传输两条相同的信息时,可能会发生错误,导致两条信息合并为一条。在这种合并中,第一条信息的结尾与第二条信息的开头重合。当然,合并只能发生在相同字符处。合并的长度必须是一个小于信息文本长度的正数。
例如,当连续传送两条信息abrakadabra时,可能会出现所述类型的错误、导致出现类似abrakadabrakadabra或abrakadabrakadabra的信息(前者在一个字符处发生合并,后者在四个字符处发生合并)。
给定接收到的报文 t ,判断这是否可能是本地网络运行中出现所述类型错误的结果,如果是,请确定可能的值 s 。
两个报文完全重叠的情况不应视为错误。例如,如果收到的报文是abcd,则应认为其中没有错误。同样,简单地在一条信息后附加另一条信息也不是错误的标志。例如,如果收到的信息是 abcabc,也应认为其中没有错误。
输入格式
一个非空字符串 t ,该字符串由拉丁字母的小写字母组成。字符串 t 的长度不超过 4×10⁵ 个字符。
输出格式
如果信息 t 不能包含错误,则在单行输出中输出 NO (不带引号)。
否则,在第一行输出YES(不带引号),在下一行输出字符串s(可能导致错误的信息)。如果有多个可能的答案,可以输出任意一个。
输入输出样例
输入#1
abrakadabrabrakadabra
输出#1
YES abrakadabra
输入#2
acacacaca
输出#2
YES acacaca
输入#3
abcabc
输出#3
NO
输入#4
abababab
输出#4
YES ababab
输入#5
tatbt
输出#5
NO
输入解题思路,AI测评打分。不知道怎么写?