You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

29 lines
1.4 KiB

2 years ago
#include <bits/stdc++.h>
using namespace std;
int main() {
int a, b, n; // 最小字母,最大字母,字符串的长度
string s; // 输入的字符串是什么
cin >> a >> b >> n >> s;
a--, b--; // 题目中下标从1开始为了方便我们修改为从0开始所以 a--,b--
for (int i = 0; i < 5; i++) { // 最多输出5个
int k = n - 1;
/*
jambcdef bcdeg,
(1) (s[k]+1-'a')~b
(2) k~n-1 : (n-k)
(3) k,
*/
while (k >= 0 && b - (s[k] - 'a') < n - k) k--; // 如果不行,就继续向前
if (k < 0) break; // 如果每一位都无法变大,说明是最大排列,已经无路可走
// 否则可以变大,变成比现在大的最小的一个,把当前位及后面都调大一位即可
for (int j = k, c = s[k] + 1; j < n; j++, c++) s[j] = c;
cout << s << endl;
}
return 0;
}