Advertisement
a53

anagrame_cv

a53
Nov 19th, 2021
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.46 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3. #include <cstdlib>
  4. using namespace std;
  5.  
  6. int n,X[13],P[13];
  7. char s[13];
  8.  
  9. void afisare()
  10. {
  11. for(int i=1;i<=n;i++)
  12. cout<<s[X[i]-1];
  13. cout<<"\n";
  14. }
  15.  
  16. int valid(int k)
  17. {
  18. if(k>1) ///daca sunt cel putin la cea de-a doua litera
  19. {
  20. if(strchr("aeiou",s[X[k]-1])==0 &&
  21. strchr("aeiou",s[X[k-1]-1])==0)
  22. return 0; ///doua consoane alaturare => 0
  23. if(strchr("aeiou",s[X[k]-1])!=0 &&
  24. strchr("aeiou",s[X[k-1]-1])!=0)
  25. return 0; ///doua vocale alaturate => 0
  26. }
  27. return 1;
  28. }
  29.  
  30. void back(int k)
  31. {
  32. for(int i=1;i<=n;i++)
  33. if(!P[i])
  34. {
  35. P[i]=1;
  36. X[k]=i;
  37. if(valid(k))
  38. if(k==n) afisare();
  39. else back(k+1);
  40. P[i]=0;
  41. }
  42. }
  43.  
  44. void ordonare(char s[])
  45. {
  46. int l=strlen(s);
  47. for(int i=0;i<l;i++)
  48. for(int j=i+1;j<l;j++)
  49. if(s[i]>s[j])
  50. {
  51. char aux=s[i];
  52. s[i]=s[j];
  53. s[j]=aux;
  54. }
  55. }
  56.  
  57. int main()
  58. {
  59. cin>>s;
  60. n=strlen(s);
  61. int cv=0,cc=0;
  62. for(int i=0;i<n;i++)
  63. if(strchr("aeiou",s[i])==0) cc++;///numaram consoanele
  64. else cv++;///numaram vocalele
  65. if(abs(cc-cv)>1) cout<<"IMPOSIBIL";///diferenta>1 => imposibil
  66. else
  67. {
  68. ordonare(s);///ordonez alfabetic cuvantul
  69. back(1);
  70. }
  71. return 0;
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement