#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; void simulate(vector> &board, vector> &vis, int k, int x2, int y2, int current_x, int current_y, int n, int current_moves) { if (current_moves > k) { return; } if (current_x < 0 || current_x >= n) { return; } if (current_y < 0 || current_y >= n) { return; } if (vis[current_x][current_y]) { return; } if (board[current_x][current_y] == 1) { return; } if (current_x == x2 && current_y == y2) { if ((k - current_moves) % 2 == 0) { ofstream myfile; myfile.open("chess.out"); myfile << "Yes\n"; myfile.close(); exit(0); } else { ofstream myfile; myfile.open("chess.out"); myfile << "No\n"; myfile.close(); exit(0); } } vis[current_x][current_y] = current_moves; simulate(board, vis, k, x2, y2, current_x + 2, current_y - 1, n, current_moves + 1); simulate(board, vis, k, x2, y2, current_x + 1, current_y - 2, n, current_moves + 1); simulate(board, vis, k, x2, y2, current_x - 1, current_y - 2, n, current_moves + 1); simulate(board, vis, k, x2, y2, current_x - 2, current_y - 1, n, current_moves + 1); simulate(board, vis, k, x2, y2, current_x + 2, current_y + 1, n, current_moves + 1); simulate(board, vis, k, x2, y2, current_x + 2, current_y + 1, n, current_moves + 1); simulate(board, vis, k, x2, y2, current_x + 1, current_y + 2, n, current_moves + 1); simulate(board, vis, k, x2, y2, current_x - 1, current_y + 2, n, current_moves + 1); } int main() { ios::sync_with_stdio(false); cin.tie(NULL); ifstream myfile("chess.in"); int n, k; int x1, y1, x2, y2; vector> board; if (myfile.is_open()) { myfile >> n >> k; myfile >> x1 >> y1 >> x2 >> y2; x1--; y1--; x2--; y2--; board.resize(n); for (auto &i : board) { i.resize(n); } for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { int tempo; myfile >> tempo; board[i][j] = tempo; } } myfile.close(); } vector t(n); vector> vis(n, t); simulate(board, vis, k, x2, y2, x1, y1, n, 0); ofstream myfile2; myfile2.open("chess.out"); myfile2 << "No\n"; myfile2.close(); exit(0); }