fork download
  1. #include <stdio.h>
  2.  
  3. #define N 4
  4.  
  5. int board[N]; // i-ci sətrdəki vezirin sütunu
  6.  
  7. // Vezirin təhlükəsiz olub olmadığını yoxlayır
  8. int safe(int row, int col) {
  9. for (int i = 0; i < row; i++) {
  10. if (board[i] == col || (row - i) == (col - board[i]) || (row - i) == (board[i] - col))
  11. return 0; // Təhlükəli
  12. }
  13. return 1; // Təhlükəsiz
  14. }
  15.  
  16. // Rekursiv olaraq vezirləri yerləşdirir
  17. void solve(int row) {
  18. if (row == N) { // Bütün vezirlər yerləşdirildi
  19. for (int i = 0; i < N; i++) {
  20. for (int j = 0; j < N; j++) {
  21. if (board[i] == j) printf("Q ");
  22. else printf(". ");
  23. }
  24. printf("\n");
  25. }
  26. printf("\n");
  27. return;
  28. }
  29.  
  30. for (int col = 0; col < N; col++) {
  31. if (safe(row, col)) {
  32. board[row] = col; // Veziri qoy
  33. solve(row + 1); // Növbəti sətrə keç
  34. }
  35. }
  36. }
  37.  
  38. int main() {
  39. solve(0);
  40. return 0;
  41. }
Success #stdin #stdout 0s 5308KB
stdin
Standard input is empty
stdout
. Q . . 
. . . Q 
Q . . . 
. . Q . 

. . Q . 
Q . . . 
. . . Q 
. Q . .