fork download
  1. #include <bits/stdc++.h>
  2. #define ll long long
  3.  
  4. using namespace std;
  5.  
  6. int n, x[1001];
  7. int final = 0;
  8. string s = "ABCDEFGH";
  9. char a[1001];
  10.  
  11. void init(){
  12. for(int i = 0; i <= n - 1; i++){
  13. x[i] = i;
  14. a[i] = s[x[i]];
  15. }
  16. }
  17.  
  18. bool check(){
  19. for(int i = 1; i < n - 1; i++){
  20. if(a[i] == 'A' || a[i] == 'E'){
  21. if(a[i - 1] != s[0] && a[i- 1] != s[4] && a[i + 1] != s[0] && a[i + 1] != s[4]){
  22. return false;
  23. }
  24. }
  25. }
  26. return true;
  27. }
  28.  
  29. void gen(){
  30. int i = n - 2;
  31. while(i >= 0 && x[i] >= x[i + 1]){
  32. i--;
  33. }
  34. if(i < 0){
  35. final = 1;
  36. }
  37. else{
  38. for(int j = n - 1; j > i; j--){
  39. if(x[j] >= x[i]){
  40. swap(x[i], x[j]);
  41. break;
  42. }
  43. }
  44. sort(x + i + 1, x + n);
  45. }
  46. for(int i = 0; i < n; i++){
  47. a[i] = s[x[i]];
  48. }
  49. }
  50.  
  51.  
  52.  
  53. int main(){
  54. char c; cin >> c;
  55. n = c - 'A' + 1;
  56. init();
  57. while(!final){
  58. if(check()){
  59. for(int i = 0; i < n; i++){
  60. cout << a[i];
  61. }
  62. cout << endl;
  63. }
  64. gen();
  65. }
  66. }
Success #stdin #stdout 0s 5296KB
stdin
Standard input is empty
stdout