a53

permnk

a53
Dec 11th, 2021
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.82 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3. using namespace std;
  4.  
  5. int n, k, st[16], v[16];
  6. int G;
  7.  
  8. void Afis()
  9. {
  10. if (abs(G - st[n - 1]) > k) return;
  11. for (int i = 1; i < n; i++)
  12. cout << st[i] << " ";
  13. cout << G << "\n";
  14. }
  15.  
  16. void Back(int top)
  17. {
  18. if (top == n) Afis();
  19. else for (int i = max(1, st[top-1] - k); i <= n && i <= st[top-1] + k; i++)
  20. if (v[i] == 0)
  21. {
  22. st[top] = i;
  23. v[i] = 1;
  24. G ^= i;
  25. Back(top + 1);
  26. v[i] = 0;
  27. G ^= i;
  28. }
  29. }
  30.  
  31. int main()
  32. {
  33. int i;
  34. cin >> n >> k;
  35. for (i = 1; i <= n; i++)
  36. G ^= i;
  37. for (i = 1; i <= n; i++)
  38. {
  39. st[1] = i;
  40. v[i] = 1;
  41. G ^= i;
  42. Back(2);
  43. G ^= i;
  44. v[i] = 0;
  45. }
  46. return 0;
  47. }
Advertisement
Add Comment
Please, Sign In to add comment