AnindyaBiswas

queen_check

Jun 1st, 2022 (edited)
216
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.75 KB | None | 0 0
  1. import java.util.Arrays;
  2. import java.util.Scanner;
  3. class Set{
  4.     int[] row, col, diag1, diag2;
  5.     int row_t, col_t, diag1_t, diag2_t, size;
  6.     Set(int n)
  7.     {
  8.         row = new int[n];
  9.         col = new int[n];
  10.         diag1 = new int[n];
  11.         diag2 = new int[n];
  12.         size = n;
  13.         Arrays.fill(diag1, -n);
  14.         Arrays.fill(diag2, -n);
  15.         Arrays.fill(row, -n);
  16.         Arrays.fill(col, -n);
  17.         row_t = col_t = diag1_t = diag2_t = -1;
  18.     }
  19.  
  20.     boolean isPresent(int[] arr, int n)
  21.     {
  22.         for(int i = 0; i < size; i++)
  23.         {
  24.             if(arr[i] == n)
  25.                 return true;
  26.         }    
  27.         return false;
  28.     }
  29.  
  30.     void rowAdd(int n)
  31.     {
  32.         if(!isPresent(row, n))
  33.             row[++row_t] = n;
  34.     }
  35.  
  36.     void colAdd(int n)
  37.     {
  38.         if(!isPresent(col, n))
  39.             col[++col_t] = n;
  40.     }
  41.  
  42.     void diag1Add(int n)
  43.     {
  44.         if(!isPresent(diag1, n))
  45.             diag1[++diag1_t] = n;
  46.     }
  47.  
  48.     void diag2Add(int n)
  49.     {
  50.         if(!isPresent(diag2, n))
  51.             diag2[++diag2_t] = n;
  52.     }
  53.    
  54.     boolean result()
  55.     {
  56.         if(row_t == col_t && row_t == diag1_t && row_t == diag2_t)
  57.             return true;
  58.         return false;
  59.     }
  60.  
  61. }
  62.  
  63. public class queen_check {
  64.     public static void main(String Args[])
  65.     {
  66.         Scanner sc = new Scanner(System.in);
  67.         System.out.print("Enter no. of rows or columns : ");
  68.         int size  = sc.nextInt();
  69.         int[][] board = new int[size][size];
  70.         Set s = new Set(size);
  71.  
  72.         for(int i = 0; i < size; i++)
  73.         {
  74.             System.out.print("\n\nEnter queen "+ (i+1) + " row : ");
  75.             int r = sc.nextInt();
  76.             System.out.print("Enter queen "+ (i+1) + " column : ");
  77.             int c = sc.nextInt();
  78.             board[r][c] = 1;
  79.         }
  80.         System.out.println("\n");
  81.         for(int i = 0; i < size; i++)
  82.         {
  83.             for(int j = 0; j < size; j++)
  84.             {
  85.                 if(board[i][j] == 1)
  86.                     System.out.print("Q\t");
  87.                 else
  88.                     System.out.print(".\t");
  89.             }
  90.             System.out.println("\n");
  91.         }
  92.  
  93.         for(int i = 0; i < size; i++)
  94.         {
  95.             for(int j = 0; j < size; j++)
  96.             {
  97.                 if(board[i][j] == 1)
  98.                 {
  99.                     s.rowAdd(i);
  100.                     s.colAdd(j);
  101.                     s.diag1Add(i-j);
  102.                     s.diag2Add(i+j);
  103.                 }
  104.             }
  105.         }
  106.  
  107.         System.out.print("\n\n r c d1 d2 : "+s.row_t+" "+s.col_t+" "+s.diag1_t+" "+s.diag2_t);
  108.        
  109.         if(s.result())
  110.             System.out.println("\n\nSUCCESS!!!");
  111.         else
  112.             System.out.println("\n\nFail!");
  113.  
  114.     }
  115. }
Add Comment
Please, Sign In to add comment