#include<iostream>usingnamespacestd;boolcheckNewPosition(introw,intcolumn,intpositions[]){for(inti=0;i<row;i++){if(positions[i]==column||column-positions[i]==row-i||column-positions[i]==i-row){returnfalse;}}returntrue;}boolfindSolution(intn,introw,intpositions[]){if(row==n){returntrue;}for(intcolumn=0;column<n;column++){if(!checkNewPosition(row,column,positions)){continue;}positions[row]=column;if(findSolution(n,row+1,positions)){returntrue;}}returnfalse;}voidprintCheckboard(intn,intpositions[]){for(introw=0;row<n;row++){for(intcolumn=0;column<n;column++){if(positions[row]==column){cout<<"1 ";}else{cout<<"0 ";}}cout<<endl;}}intmain(){intn=5;intpositions[n];boolresult=findSolution(n,0,positions);if(result){printCheckboard(n,positions);}else{cout<<"No result exists"<<endl;}return0;}