CF196D.The Next Good String
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
In problems on strings one often has to find a string with some particular properties. The problem authors were reluctant to waste time on thinking of a name for some string so they called it good. A string is good if it doesn't have palindrome substrings longer than or equal to d .
You are given string s , consisting only of lowercase English letters. Find a good string t with length ∣s∣ , consisting of lowercase English letters, which is lexicographically larger than s . Of all such strings string t must be lexicographically minimum.
We will call a non-empty string s[a ... b]=sasa+1... sb (1<=a<=b<=∣s∣) a substring of string s=s1s2... s∣s∣ .
A non-empty string s=s1s2... sn is called a palindrome if for all i from 1 to n the following fulfills: si=sn−i+1 . In other words, palindrome read the same in both directions.
String x=x1x2... x∣x∣ is lexicographically larger than string y=y1y2... y∣y∣ , if either |x|>|y| and x1=y1,x2=y2,... ,x∣y∣=y∣y∣ , or there exists such number r (r<|x|,r<|y|) , that x1=y1,x2=y2,... ,xr=yr and x_{r+1}>y_{r+1} . Characters in such strings are compared like their ASCII codes.
输入格式
The first line contains integer d ( 1<=d<=∣s∣ ).
The second line contains a non-empty string s , its length is no more than 4⋅105 characters. The string consists of lowercase English letters.
输出格式
Print the good string that lexicographically follows s , has the same length and consists of only lowercase English letters. If such string does not exist, print "Impossible" (without the quotes).
输入输出样例
输入#1
3 aaaaaaa
输出#1
aabbcaa
输入#2
3 zzyzzzz
输出#2
Impossible
输入#3
4 abbabbbabbb
输出#3
abbbcaaabab