diff --git a/cpp_codes/21. Knight's Tour.cpp b/cpp_codes/21. Knight's Tour.cpp new file mode 100644 index 0000000..3ab5287 --- /dev/null +++ b/cpp_codes/21. Knight's Tour.cpp @@ -0,0 +1,51 @@ +#include // Accepted +using namespace std; + +void display(int n, vector>& mv) { + for(int i=0; i>& mv) { // mv -> moves vector + + if(r < 0 || c < 0 || r >= n || c >= n || mv[r][c] > 0) { + return; + } + else if(move == n*n) { + mv[r][c] = move; + display(n,mv); + mv[r][c] = 0; + return; + } + + mv[r][c] = move; + + knightTour(n,r-2, c+1, move+1, mv); + knightTour(n,r-1, c+2, move+1, mv); + knightTour(n,r+1, c+2, move+1, mv); + knightTour(n,r+2, c+1, move+1, mv); + knightTour(n,r+2, c-1, move+1, mv); + knightTour(n,r+1, c-2, move+1, mv); + knightTour(n,r-1, c-2, move+1, mv); + knightTour(n,r-2, c-1, move+1, mv); + + mv[r][c] = 0; + + return; +} + +int main() { + int n,r,c; + cin >> n >> r >> c; + + vector> mv(n,vector(n,0)); + + knightTour(n,r,c,1,mv); + + + return 0; +} \ No newline at end of file