fork(1) download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int ans,a[100000],b[100000],c[100000],wa[1000000],n;
  4. void gcd(int x){
  5. if(x>n){
  6. ans++;
  7. if(ans<4){
  8. for(int i=1;i<=n;i++){
  9. cout<<a[i]<<" ";
  10. }
  11. cout<<"\n";
  12. }
  13. return;
  14. }
  15. for(int i=1;i<=n;i++){
  16. if(!wa[i]&&!b[x-i+n]&&!c[x+i]){
  17. a[x]=i;
  18. wa[i]=b[x-i+n]=c[x+i]=1;
  19. gcd(x+1);
  20. wa[i]=b[x-i+n]=c[x+i]=0;
  21. }
  22. }
  23. }
  24. int main(){
  25. cin>>n;
  26. gcd(1);
  27. cout<<ans;
  28. }
Success #stdin #stdout 0s 5328KB
stdin
6
stdout
2 4 6 1 3 5 
3 6 2 5 1 4 
4 1 5 2 6 3 
4