/
spirzen
/
it-code-examples
Обзор
Документация
Войти
/
spirzen
/
it-code-examples
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
examples/cpp/lab-1125-007/main.cpp
27 строк
824 B
Spirzen
Code migration pack
09 июн 2026, 01:41
09 июн 2026, 01:41
cebc284
Код
Авторство
О чём код?
const int dr[4] = {1, -1, 0, 0}; const int dc[4] = {0, 0, 1, -1}; int bfs_grid(int sr, int sc, int tr, int tc, const vector<string> &grid) { int n = grid.size m = grid[0].size(); vector<vector<int>> dist(n, vector<int>(m, -1)); queue<pair<int, int>> q; dist[sr][sc] = 0; q.push({sr, sc}); while (!q.empty()) { auto [r, c] = q.front(); q.pop(); if (r == tr && c == tc) { return dist[r][c]; } for (int k = 0; k < 4; ++k) { int nr = r + dr[k], nc = c + dc[k]; if (nr < 0 || nr >= n || nc < 0 || nc >= m) continue; if (grid[nr][nc] == '#') continue; if (dist[nr][nc] != -1) continue; dist[nr][nc] = dist[r][c] + 1; q.push({nr, nc}); } } return -1; }