Advertisement
Guest User

Untitled

a guest
Dec 10th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.22 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. #include <cstring>
  4. #include <cmath>
  5. using namespace std;
  6.  
  7. int st[30], n,k,as,ev;
  8.  
  9. void init(int k, int st[])
  10. {
  11. st[k]=96;
  12. }
  13. void succesor(int k, int st[], int &as)
  14. {
  15. if (st[k]<97+n/2)
  16. {
  17. st[k]++;
  18. as=1;
  19. }
  20. else
  21. as=0;
  22. }
  23.  
  24. void valid(int k, int st[], int &ev)
  25. {int i;
  26. ev=1;
  27. for (i=1; i<=k; i++)
  28. if(abs(st[i]-st[i-1])!=1)
  29. ev=0;
  30. if(k==n-4&&abs(st[k+1]-st[k])!=1)
  31. ev=0;
  32. }
  33. int solutie(int k)
  34. {
  35. return (k==n-4);
  36. }
  37.  
  38. void tipar()
  39. {
  40. cout<<"ab";
  41. for (int i=1; i<=n-4; i++)
  42. cout<<char (st[i]);
  43. cout<<"ba";
  44. cout<<endl;
  45. }
  46.  
  47. int main()
  48. {
  49. cin>>n;
  50. if(n==3)
  51. cout<<"aba";
  52. else
  53. {st[0]=98;
  54. st[n-3]=98;
  55. k=1;
  56. init(k,st);
  57. while (k>0)
  58. {
  59. do
  60. {
  61. succesor(k,st,as);
  62. if (as)
  63. valid(k,st,ev);
  64. }
  65. while ((as==1) && (!((ev==1)&&(as==1))));
  66. if (as==1)
  67. if (solutie(k))
  68. tipar();
  69. else
  70. {
  71. k++;
  72. init(k,st);
  73. }
  74. else
  75. k--;
  76. }}
  77.  
  78. return 0;
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement