Tám Hậu


Submit solution

Points: 3 (partial)
Time limit: 1.0s
Python 3 10.0s
Memory limit: 977M
Python 3 10M

Author:
Problem types
Allowed languages
Ada, Assembly, Awk, C, C++, C11, CLANG, CLANGX, Classical, COBOL, Coffee, CSC, D lang, DART, F95, FORTH, Fortrn, GAS32, GO, Haskell, Itercal, Java, kotlin, LEAN, LISP, LUA, MONOVB, Nasm, OCAML, Pascal, Perl, php, PIKE, prolog, Pypy, Python, Ruby 2, RUST, Scala, SCM, SED, SWIFT, TCL, TUR, V8JS, VB, ZIG

Hãy đặt n con hậu lên bàn cờ quốc tế n*n sao cho không con nào ăn con nào và cũng không có con nào được nằm trên đường chéo chính và đường chéo phụ của bàn cờ

Input

Dòng đầu tiên chứa số nguyên dương n \((n \le 14)\)

Output

Số phương án đặt hậu thỏa mãn điều kiện bài toán

Example 1

Input

 8

Output

12
tichpx

Comments


  • -1
    2000cntt2k59  commented on Sept. 29, 2020, 10:09 a.m. edited
    #include<bits/stdc++.h>
    using namespace std;
    class Hau 
    {
        int n, x[100],dem=0;
        void TRY(int k)//gia su da dat dc x1.... x[k-1]
        {
            if(k>n)
            {
                cout<<"\n "<<setw(5)<<++dem<<"   :";
                for(int i=1; i<=n; i++) cout<<"("<<i<<","<<x[i]<<")  ";
    
            }
            else {
                for(int t=1;t<=n; t++)
                {
                    if(datduoc(k,t))//dat truoc hay t hu k vao (k,t)
                    {
                        x[k]=t;
                        TRY(k+1);
                    }
                }
            }
        }
        bool datduoc(int k,int t)
        {
            for(int i=1; i<k; i++)
            {
                if(x[i]==t ) return 0; 
                if(k-i ==abs(x[i]-t)) return 0;// an theo duong cheo
            }
            return 1;
        }
        public:void sol()
        {
            cin>>n; 
            TRY(1);
        }
    };
    int main()
    {
        Hau H;
        H.sol();
        return 0 ;
    }