/BCQUEEN - N - Queen

<Problem>

https://www.spoj.com/PTIT/problems/BCQUEEN/
              #include <iostream>
        using namespace std;
        
        int n;
        int PiecePos[11]{ 0 };
        
        bool check(int i) {
          for (int j = 1; j < i; j++) {
            if (PiecePos[i] == PiecePos[j] || abs(j - i) == abs(PiecePos[j] - PiecePos[i])) {
              return false;
            }
          }
          return true;
        }
        
        bool Tim(int i) {
          while (PiecePos[i] < n) {
            PiecePos[i]++;
            if (check(i)) {
              return true;
            }
          }
          return false;
        }
        
        int XepHau() {
          int i = 1;
          int count = 0;
          while (true) {
            //cout << "OK";
            if (i < 1) return count;
            if (i > n) {
              count++;
              i--;
            }
            bool res = Tim(i);
            //cout << boolalpha << res << endl;
            if (res) {
              i++;
            }
            else {
              PiecePos[i] = 0;
              i--;
            }
          }
        }
        
        int main() {
          cin >> n;
        
          int res = XepHau();
          cout << res << endl;
        
          return 0;
        }