Advertisement
Guest User

Untitled

a guest
Mar 31st, 2020
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.43 KB | None | 0 0
  1. #include <cmath>
  2. #include <cstdio>
  3. #include <vector>
  4. #include <iostream>
  5. #include <algorithm>
  6. using namespace std;
  7.  
  8. vector<vector<int>> final;
  9.  
  10. void printSolution()
  11. {
  12. cout << final.size() + 1 << endl;
  13. for(int i = 0; i < final.size(); i++)
  14. {
  15. for(int j = 0; j < final[i].size(); j++)
  16. {
  17. if(final[i][j] != 0)
  18. {
  19. cout<< final[i][j] << " ";
  20. }
  21. }
  22. cout << endl;
  23. }
  24. }
  25.  
  26. bool isGood(vector<int> vec, int x)
  27. {
  28. for(int j = 0; j < x; j++)
  29. {
  30. if(vec[j] == vec[x] || vec[j] > vec[x])
  31. {
  32. return false;
  33. }
  34. }
  35. return true;
  36. }
  37.  
  38. void bkt(vector<int> vec, int n, int x)
  39. {
  40. for (int i = 1; i <= n; i++)
  41. {
  42. vec[x] = i;
  43. if (isGood(vec, x))
  44. {
  45. if(x <= vec.size() - 1)
  46. {
  47. final.push_back(vec);
  48. bkt(vec, n, x + 1);
  49. }else
  50. {
  51. if(x > vec.size())
  52. {
  53. return;
  54. }
  55. bkt(vec, n, x + 1);
  56. }
  57. }
  58. }
  59. }
  60.  
  61. void solve(int n)
  62. {
  63. vector<int> vec;
  64. for(int i = 0; i < n; i++)
  65. {
  66. vec.push_back(0);
  67. }
  68. bkt(vec, n, 0);
  69. }
  70.  
  71. int main()
  72. {
  73. int n;
  74. cin >> n;
  75. if(n >= 1)
  76. {
  77. solve(n);
  78. printSolution();
  79. }
  80. return 0;
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement