Advertisement
Guest User

Untitled

a guest
Nov 21st, 2019
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.11 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <cstdlib>
  4. using namespace std;
  5. int i,v[20],n,k;
  6. ofstream g("permutari.out");
  7. void init(int k)
  8. {
  9. v[k]=0;
  10. }
  11. int succesor(int k)
  12. {
  13. if(v[k]<n)
  14. {
  15. v[k]++;
  16. return 1;
  17. }
  18. return 0;
  19. }
  20. int valid(int k)
  21. {
  22. for(i=1;i<k;i++)
  23. if(v[i]==v[k] || abs(i-k)==abs(v[i]-v[k]))
  24. return 0;
  25. return 1;
  26. }
  27. int solutie(int k)
  28. {
  29. if(k==n) return 1;
  30. return 0;
  31. }
  32. void afisare()
  33. {
  34. for(i=1;i<=n;i++)
  35. {
  36. for(int j=1;j<=n;j++)
  37.  
  38. if(v[i]==j) g<<"* ";
  39. else g<<"- ";
  40. g<<endl;
  41. }
  42. g<<endl;
  43. }
  44. void back(int k)
  45. {
  46. int sem,sev;
  47. k=1;
  48. init(k);
  49. while(k>0)
  50. {
  51. sem=0;
  52. sev=0;
  53. if(k<=n)
  54. do {
  55. sem=succesor(k);
  56. if(sem) sev=valid(k);
  57. }while(sem&&!sev);
  58. if(sem)
  59. {
  60. if(solutie(k)) afisare();
  61. else
  62. {
  63. k++;
  64. init(k);
  65. }
  66. }
  67. else k--;
  68. }
  69. }
  70. int main()
  71. {
  72. cin>>n;
  73. back(n);
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement