#hASHybttg020105. 1459:friends
1459:friends
好的,这是整理好的题面,格式清晰。
题目描述
有三个好朋友 A、B、C 喜欢玩游戏:
- A 写下字符串 ( S )。
- B 将 ( S ) 复制一遍,得到 ( T = S + S )(即 ( T ) 长度为 ( 2|S| ))。
- C 在 ( T ) 的任意位置(包括首尾)插入一个字符,得到 ( U )。
现在你得到了 ( U ),请你找出 ( S )。
你需要判断:
- 如果 ( S ) 不存在,输出
NOT POSSIBLE。 - 如果 ( S ) 不唯一(有多个可能的 ( S ) 满足条件),输出
NOT UNIQUE。 - 如果 ( S ) 唯一,输出 ( S )。
输入格式
第一行一个整数 ( N ),表示 ( U ) 的长度。
第二行一个字符串 ( U ),保证 ( U ) 仅由大写字母组成。
输出格式
输出一行:
- 若 ( S ) 不存在,输出
NOT POSSIBLE。 - 若 ( S ) 不唯一,输出
NOT UNIQUE。 - 否则输出 ( S )。
数据范围
- ( 2 \le N \le 2000001 )
输入样例 1
7
ABXCABC
输出样例 1
ABC
输入样例 2
6
ABCDEF
输出样例 2
NOT POSSIBLE
输入样例 3
9
ABABABABA
输出样例 3
NOT UNIQUE
样例解释
样例 1
( N = 7 ),( U = \text{"ABXCABC"} )
原来 ( T = S + S ),C 在其中插入一个字符得到 ( U )。
尝试复原:去掉第 3 个字符 'X',得到 "ABABCABC",这可以分成两个相同的 "ABC"。
所以 ( S = \text{"ABC"} ),唯一。
输出 ABC。
样例 2
( N = 6 ),( U = \text{"ABCDEF"} )
偶数长度 ( N=6 ) 时,原 ( T ) 长度应为偶数,但去掉一个字符后 ( U ) 长度为 6,说明原 ( T ) 长度是 5 或 7?实际上 ( N ) 应为奇数才会存在 ( S )(因为 ( T = 2m ),插入一个字符后 ( U ) 长 ( 2m+1 ),所以 ( N ) 必须是奇数)。
此处 ( N=6 ) 偶数,不可能由上述过程得到,所以 NOT POSSIBLE。
样例 3
( N = 9 ),( U = \text{"ABABABABA"} )
存在多个可能的 ( S ) 满足条件,如:
- 去掉第 1 个字符 'A' 得到 "BABABABA" → 可分成 "BABA" 重复两次?不,应是 "BABA"+"BABA" 长度为 8,去掉一个字符得到 9 长度的 U 需检查。
实际上多个 ( S ) 都能生成类似的 ( U ),故不唯一。
输出NOT UNIQUE。 、输入输出格式、数据范围、样例及解释。