bhupixb

N queens Problem

Sep 4th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.94 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. bool safe(int arr[][100], int r, int c, int n){
  4. int i, j;
  5. for(i = c; i >= 0; i--){
  6. if(arr[r][i])return false;
  7. }
  8.  
  9. for(i = c, j = r; i >= 0 and j >= 0; i--, j--)
  10. if(arr[i][j])return false;
  11.  
  12. for(i = c, j = r; i >= 0 and j < n; i--, j++)
  13. if(arr[i][j])return false;
  14. return true;
  15. }
  16. int solve(int arr[][100], int c, int n){
  17. if(!(c < n))return 1;
  18.  
  19. for(int i = 0; i < n; i++){
  20. if(safe(arr, i, c, n)){
  21. arr[i][c] = 1;
  22. if(solve(arr, c + 1, n))
  23. return 1;
  24. arr[i][c] = 0;
  25. }
  26. }
  27. return 0;
  28. }
  29. int main(){
  30. int n, i, j;
  31. int arr[100][100] = {0};
  32. scanf("%d", &n);
  33.  
  34. if(solve(arr, 0, n))printf("Possible\n");
  35. else printf("Imossible\n");
  36.  
  37. for(i = 0; i < n; i++){
  38. for(j = 0; j <n; j++)
  39. printf("%d ",arr[i][j]);
  40. printf("\n");
  41. }
  42.  
  43.  
  44. return 0;
  45. }
Add Comment
Please, Sign In to add comment