题解
2023-03-22 07:54:41
发布于:上海
13阅读
0回复
0点赞
#include<bits/stdc++.h>
#define MAX 27
using namespace std;
int s,t,w;
vector<int> arr;
map<int,char> mp;
int cur_index = 0;
void init()
{
for(int i=1;i<=26;i++)
{
mp[i]=char(i+96);
}
}
bool check()
{
int size = arr.size();
int temp;
for(int i=size-1;i>=0;i--)
{
temp = size-i;
if(arr[i]<t+1-temp)
{
return false;
}
}
return true;
}
void find_next()
{
int size = arr.size();
int temp;
for(int i=size-1;i>=0;i--)
{
temp = size-i;
if(arr[i]<t+1-temp)
{
arr[i]+=1;
for(int j=i+1;j<size;j++)
{
arr[j]=arr[j-1]+1;
}
break;
}
}
}
void fun()
{
if(cur_index>=1)
{
for(int i=0;i<arr.size();i++)
{
cout<<mp[arr[i]];
}
cout<<"\n";
}
if(check()||cur_index>=5)
{
return;
}
find_next();
cur_index+=1;
fun();
}
int main()
{
cin>>s>>t>>w;
char c;
int temp;
for(int i=0;i<w;i++)
{
cin>>c;
temp = int(c)-int('a')+1;
arr.push_back(temp);
}
init();
fun();
return 0;
}
这里空空如也
有帮助,赞一个