提交时间:2024-08-20 22:34:07
运行 ID: 173645
#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; }