CF464A No to Palindromes!

题目描述

Paul 讨厌回文串。他认为字符串 $s$ 是可容忍的,当且仅当它的每个字符都是英语字母表前 $p$ 个字母之一,并且 $s$ 不包含长度大于等于 $2$ 的任何回文连续子串。 Paul 找到了一个长度为 $n$ 的可容忍字符串 $s$。请帮助他找到长度为 $n$ 的字典序下一个可容忍字符串;如果不存在这样的字符串,请输出 "NO"。

输入格式

第一行包含两个用空格分隔的整数:$n$ 和 $p$($1 \leq n \leq 1000$,$1 \leq p \leq 26$)。 第二行包含一个由 $n$ 个小写英文字母组成的字符串 $s$,保证 $s$ 是一个可容忍字符串(满足上面的定义)。

输出格式

如果存在长度为 $n$ 的字典序下一个可容忍字符串,输出该字符串。否则,输出 "NO"。

说明/提示

如果存在某个编号 $i$,使得 $s_{1}=t_{1}$,$\ldots$,$s_{i}=t_{i}$,且 $s_{i+1}>t_{i+1}$,则称长度相同的字符串 $s$ 的字典序大于字符串 $t$。 “字典序下一个可容忍字符串”指的是在所有比给定字符串大的可容忍字符串中,字典序最小的那个。 回文串是指正着和反着读都一样的字符串。 由 ChatGPT 5 翻译