Advertisement
a53

fazan_max

a53
Nov 11th, 2021
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.96 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3. using namespace std;
  4. char S[32][22];
  5. int X[32],n,P[32],kmax,Y[32];
  6.  
  7. void afisare()
  8. {
  9. for(int i=1;i<=kmax;i++)
  10. cout<<S[Y[i]]<<" ";
  11. }
  12.  
  13. int ok(int k)
  14. {
  15. if(k>1 && strncmp(S[X[k]],S[X[k-1]]+strlen(S[X[k-1]])-2,2)!=0)
  16. return 0;
  17. return 1;
  18. }
  19.  
  20. void back(int k)
  21. {
  22. for(int i=1;i<=n;i++)
  23. if(!P[i])
  24. {
  25. X[k]=i;
  26. P[i]=1;
  27. if(ok(k))
  28. {
  29. if(k>kmax)
  30. {
  31. kmax=k;
  32. for(int i=1;i<=k;i++)
  33. Y[i]=X[i];
  34. }
  35. back(k+1);
  36. }
  37. P[i]=0;
  38. }
  39. }
  40.  
  41. int main()
  42. {
  43. cin>>n;
  44. for(int i=1;i<=n;i++)
  45. cin>>S[i];
  46. for(int i=1;i<n;i++)
  47. for(int j=i+1;j<=n;j++)
  48. if(strcmp(S[i],S[j])>0)
  49. swap(S[i],S[j]);
  50. back(1);
  51. afisare();
  52. return 0;
  53. }
  54.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement