SHARE
TWEET

Untitled

a guest Dec 10th, 2018 53 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top