Advertisement
Guest User

cuv_eu

a guest
Nov 20th, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.05 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4. int n, st[10], k;
  5. char cuv[10][7];
  6.  
  7. void Init()
  8. {
  9.     st[k]=-1;
  10. }
  11. int Am_Succesor()
  12. {
  13.     if(cuv[k][st[k]+1]!='\0')
  14.     {
  15.         st[k]++;
  16.         return 1;
  17.     }
  18.     else
  19.         return 0;
  20. }
  21. int Valid()
  22. {
  23.  
  24.     for(int i=0;i<=k-1;i++)
  25.         if(cuv[i][st[i]]==cuv[k][st[k]])
  26.             return 0;
  27.    return 1;
  28. }
  29. int Solutie()
  30. {
  31.     return k==n-1;
  32. }
  33. void Tipar()
  34. {
  35.     for(int i=0;i<n;i++)
  36.         cout<<cuv[i][st[i]];
  37.     cout<<'\n';
  38. }
  39. void back()
  40. {
  41.     int AS;
  42.     k=0;
  43.     Init();
  44.     while(k>=0)
  45.     {
  46.         do { }while((AS=Am_Succesor()) && (!Valid()));
  47.         if(AS)
  48.             if(Solutie())
  49.             {
  50.                 Tipar();
  51.                 break;
  52.             }
  53.             else
  54.             {
  55.                 k++;
  56.                 Init();
  57.             }
  58.         else
  59.             k--;
  60.     }
  61. }
  62. int main()
  63. {
  64.     int i;
  65.     cin>>n;
  66.     cin.get();
  67.     for(i=0;i<n;i++)
  68.         cin>>cuv[i];
  69.     for(i=0; i<n; i++)
  70.         sort(cuv[i], cuv[i]+strlen(cuv[i]));
  71.     back();
  72.     return 0;
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement