Advertisement
NS2A2

Vị trí quân hậu

May 14th, 2020
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.78 KB | None | 0 0
  1. #include <iostream>
  2. #include <bits/stdc++.h>
  3.  
  4. using namespace std;
  5.  
  6. const int maxn=1e3;
  7.  
  8. int n;
  9. int check[maxn];
  10. int x[maxn];
  11.  
  12. bool kt()
  13. {
  14.     for (int i=1;i<=n;i++)
  15.         for (int j=i+1;j<=n;j++)
  16.         if (abs(i-j)==abs(x[i]-x[j]))
  17.         return false;
  18.     return true;
  19. }
  20.  
  21. void backtracking(int k)
  22. {
  23.     for (int i=1;i<=n;i++){
  24.         if (check[i]==0){
  25.            check[i]=1;
  26.            x[k]=i;
  27.            if (k==n){
  28.             if (kt()==true){
  29.             for (int j=1;j<=n;j++)
  30.                 cout<<x[j]<<' ';
  31.             cout<<'\n';
  32.             }
  33.            } else backtracking(k+1);
  34.            check[i]=0;
  35.            x[k]=0;
  36.         }
  37.     }
  38. }
  39.  
  40. int main()
  41. {
  42.     cin>>n;
  43.     if (n<4)
  44.     cout<<"-1";
  45.     else
  46.     backtracking(1);
  47.     return 0;
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement