fork download
  1. #include <iostream>
  2. using namespace std;
  3. void f(int i, string &s, int &k, bool virgin=true){
  4. if(k<=0) return;
  5. if(!i){
  6. cout<<s<<endl;
  7. k--;
  8. return;
  9. }
  10. char &x = s[s.size()-i];
  11. for(char c='a'; c<'d'; c++){
  12. if(virgin&&c<x) continue;
  13. x = c;
  14. f(i-1,s,k,virgin);
  15. virgin = false;
  16. }
  17. }
  18. int main() {
  19. int t,n,k;
  20. string s;
  21. cin>>t;
  22. while(t--){
  23. cin>>s>>k;
  24. n = s.size();
  25. cout<<"n: "<<n<<endl;
  26. f(n,s,k);
  27. }
  28. return 0;
  29. }
Success #stdin #stdout 0s 4352KB
stdin
5
b 100
ab 100
bca 100
aacb 100
cbaba 100
stdout
n: 1
b
c
n: 2
ab
ac
ba
bb
bc
ca
cb
cc
n: 3
bca
bcb
bcc
caa
cab
cac
cba
cbb
cbc
cca
ccb
ccc
n: 4
aacb
aacc
abaa
abab
abac
abba
abbb
abbc
abca
abcb
abcc
acaa
acab
acac
acba
acbb
acbc
acca
accb
accc
baaa
baab
baac
baba
babb
babc
baca
bacb
bacc
bbaa
bbab
bbac
bbba
bbbb
bbbc
bbca
bbcb
bbcc
bcaa
bcab
bcac
bcba
bcbb
bcbc
bcca
bccb
bccc
caaa
caab
caac
caba
cabb
cabc
caca
cacb
cacc
cbaa
cbab
cbac
cbba
cbbb
cbbc
cbca
cbcb
cbcc
ccaa
ccab
ccac
ccba
ccbb
ccbc
ccca
cccb
cccc
n: 5
cbaba
cbabb
cbabc
cbaca
cbacb
cbacc
cbbaa
cbbab
cbbac
cbbba
cbbbb
cbbbc
cbbca
cbbcb
cbbcc
cbcaa
cbcab
cbcac
cbcba
cbcbb
cbcbc
cbcca
cbccb
cbccc
ccaaa
ccaab
ccaac
ccaba
ccabb
ccabc
ccaca
ccacb
ccacc
ccbaa
ccbab
ccbac
ccbba
ccbbb
ccbbc
ccbca
ccbcb
ccbcc
cccaa
cccab
cccac
cccba
cccbb
cccbc
cccca
ccccb
ccccc