3
int snakesAndLadders(vector<vector<int>> &board) {4
unordered_map<int, int> mp;6
for (int i = n - 1; i >= 0; i--) {7
for (int j = 0; j < n; j++) {8
if (board[i][j] != -1) {11
val = (n - i - 1) * n + j + 1;13
val = (n - i - 1) * n + n - j;14
mp[val] = board[i][j];18
queue<pair<int, int>> q;19
vector<int> visited(n * n + 1, false);22
int node = q.front().first;23
int moves = q.front().second;25
if (node == n * n) return moves;26
if (visited[node]) continue;28
for (int k = 1; k <= 6; k++) {29
if (node + k > n * n) continue;31
if (mp.find(x) != mp.end()) x = mp[x];32
q.push({x, moves + 1});