欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
CF2010C2.Message Transmission Error (hard version)
Message Transmission Error (hard version)
题目描述
在伯兰州立大学,服务器之间的本地网络并非总是无差错运行。当连续传输两条完全相同的消息时,可能会发生错误,导致两条消息合并为一条。在这种合并过程中,第一条消息的末尾与第二条消息的开头重合。当然,合并只能发生在相同字符处。合并的长度必须是一个正数,且小于消息文本的长度。
例如,连续传输两条消息 "abrakadabra" 时,有可能以所述错误类型传输,得到类似 "abrakadabrabrakadabra" 或 "abrakadabrakadabra" 的消息(第一种情况下合并发生在 1 个字符处,第二种情况下合并发生在 4 个字符处)。
给定接收到的消息 ,请判断它是否可能是本地网络运行中发生所述错误后的结果,如果是,请给出一个可能的 值。
两条消息完全重叠的情况不应视为错误。例如,如果收到的消息是 "abcd",应认为其中没有错误。同样,仅仅将一条消息接在另一条消息之后也不表示有错误。例如,如果收到的消息是 "abcabc",也应认为其中没有错误。
输入
输入包含一个非空字符串 ,由小写拉丁字母组成。字符串 的长度不超过 个字符。
输出
如果消息 不可能包含错误,则在一行中输出 "NO"(不带引号)。
否则,第一行输出 "YES"(不带引号),并在下一行输出字符串 —— 一个可能导致该错误发生的原始消息。如果存在多个可能的答案,输出任意一个均可。
样例
样例 1
输入:
abrakadabrabrakadabra
输出:
YES
abrakadabra
样例 2
输入:
acacacaca
输出:
YES
acacaca
样例 3
输入:
abcabc
输出:
NO
样例 4
输入:
abababab
输出:
YES
ababab
样例 5
输入:
tatbt
输出:
NO
样例解释
在第二个样例中,字符串 "acacaca" 也是一个可接受的答案。
在线编程 IDE
建议全屏模式获得最佳体验
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |