fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. // * No One Dies a Virgin, Life Fucks Us Aint
  4.  
  5. int n;
  6. vector<int> a;
  7.  
  8. inline int nxt(int i) {
  9. return (i + 1) % n;
  10. }
  11.  
  12. inline int prv(int i) {
  13. return (i - 1 + n) % n;
  14. }
  15.  
  16. int job() {
  17. for (int i = 0 ; i < n ; i ++) if ((a[nxt(i)] + a[prv(i)]) % a[i] > 0) return 0;
  18. return 1;
  19. }
  20.  
  21. int32_t main() {
  22. cin.tie(0)->sync_with_stdio(0);
  23. for (n = 5 ; n <= 11 ; n ++) {
  24. a.resize(n);
  25.  
  26. for (int i = 1 ; i <= n ; i ++) a[i-1] = i;
  27. int ans = 0;
  28. cout << "N: " << n << '\n';
  29. do {
  30. if (job()) {
  31. ans ++;
  32. for (int i : a) cout << i << ' ';
  33. cout << '\n';
  34. }
  35. } while (next_permutation(a.begin() + 1, a.end()));
  36. cout << "Answer: " << ans/2 << '\n';
  37. cout << "-------------------\n";
  38. }
  39. }
  40.  
Success #stdin #stdout 0.12s 5288KB
stdin
Standard input is empty
stdout
N: 5
1 2 3 4 5 
1 2 5 3 4 
1 4 3 5 2 
1 5 4 3 2 
Answer: 2
-------------------
N: 6
1 2 3 4 5 6 
1 6 5 4 3 2 
Answer: 1
-------------------
N: 7
1 2 3 4 5 6 7 
1 2 3 7 4 5 6 
1 6 5 4 7 3 2 
1 7 6 5 4 3 2 
Answer: 2
-------------------
N: 8
1 2 3 4 5 6 7 8 
1 8 7 6 5 4 3 2 
Answer: 1
-------------------
N: 9
1 2 3 4 5 6 7 8 9 
1 2 3 4 9 5 6 7 8 
1 8 7 6 5 9 4 3 2 
1 9 8 7 6 5 4 3 2 
Answer: 2
-------------------
N: 10
1 2 3 4 5 6 7 8 9 10 
1 10 9 8 7 6 5 4 3 2 
Answer: 1
-------------------
N: 11
1 2 3 4 5 6 7 8 9 10 11 
1 2 3 4 5 11 6 7 8 9 10 
1 10 9 8 7 6 11 5 4 3 2 
1 11 10 9 8 7 6 5 4 3 2 
Answer: 2
-------------------