最后一个点TLE了
代码如下
#include<bits/stdc++.h>
using namespace std;
int s, t, w;
string st;
int v[110];
void dfs(int k)
{
if (k < 1) return;
if (v[k] > t)
{
if (k == 1) exit(0);
v[k] = s;
v[k - 1]++;
dfs(k - 1);
}
return;
}
bool check()
{
for (int i = 1; i <= w; i++)
if (v[i] <= v[i - 1]) return 0;
return 1;
}
int main()
{
cin >> s >> t >> w >> st;
for (int i = 0; i < w; i++)
v[i + 1] = st[i] - 'a' + 1;
for (int i = 1; i <= 5; i++)
{
if (v[1] == t) return 0;
v[w]++;
dfs(w);
while (!check())
{
v[w]++;
dfs(w);
}
for (int i = 1; i <= w; i++) putchar(v[i] + 'a' - 1);
printf("\n");
}
return 0;
}