kananasgarli90

Chessboard and Queens

Oct 28th, 2020
624
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. char chess[9][9];
  4. bool board[9][9];
  5. int say;
  6. bool check(int r, int c){
  7.     for(int i = 1; i < c; i++){
  8.         if(board[r][i] == true){
  9.             return false;
  10.         }
  11.     }
  12.     for(int i = r-1, j = c-1; i >= 1 && j >= 1; i--, j--){
  13.         if(board[i][j] == true){
  14.             return false;
  15.         }
  16.     }
  17.     for(int i = r+1, j = c-1; i <= 8 && j >= 1; i++, j--){
  18.         if(board[i][j] == true){
  19.             return false;
  20.         }
  21.     }
  22.     return true;
  23. }
  24.  
  25. void solve(int c){
  26.     if(c == 9){
  27.         say++;
  28.         return;
  29.     }
  30.     for(int i = 1; i <= 8; i++){
  31.         if(check(i, c) == true && chess[i][c] == '.'){
  32.             board[i][c] = true;
  33.             solve(c+1);
  34.             board[i][c] = false;
  35.         }
  36.     }
  37. }
  38. int main()
  39. {
  40.     for(int i = 1; i <= 8; i++){
  41.         for(int j = 1; j <= 8; j++){
  42.             cin>>chess[i][j];
  43.         }
  44.     }
  45.     solve(1);
  46.     cout<<say<<endl;
  47. }
  48.  
RAW Paste Data