Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- bool safe(int arr[][100], int r, int c, int n){
- int i, j;
- for(i = c; i >= 0; i--){
- if(arr[r][i])return false;
- }
- for(i = c, j = r; i >= 0 and j >= 0; i--, j--)
- if(arr[i][j])return false;
- for(i = c, j = r; i >= 0 and j < n; i--, j++)
- if(arr[i][j])return false;
- return true;
- }
- int solve(int arr[][100], int c, int n){
- if(!(c < n))return 1;
- for(int i = 0; i < n; i++){
- if(safe(arr, i, c, n)){
- arr[i][c] = 1;
- if(solve(arr, c + 1, n))
- return 1;
- arr[i][c] = 0;
- }
- }
- return 0;
- }
- int main(){
- int n, i, j;
- int arr[100][100] = {0};
- scanf("%d", &n);
- if(solve(arr, 0, n))printf("Possible\n");
- else printf("Imossible\n");
- for(i = 0; i < n; i++){
- for(j = 0; j <n; j++)
- printf("%d ",arr[i][j]);
- printf("\n");
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment