Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <iostream>#include <string>#include <vector>#include <utility>#include <queue>const int MAX = 99999999;using namespace std;void bfs(vector<string>&input, int si, int sj,vector<vector<int>>& dis){queue<pair<int, int>> myqueue;int m = input.size(), n = input[0].size();vector<vector<int>> vis(m, vector<int>(n, 0));int curi = si, curj = sj;int step = 0;while(1){if(curi - 1 >= 0 && input[curi - 1][curj] == '.' && vis[curi - 1][curj] == 0){myqueue.push(make_pair(curi - 1, curj));dis[curi - 1][curj] = step + 1;vis[curi - 1][curj] = 1;}if(curi + 1 < m && input[curi + 1][curj] == '.' && vis[curi + 1][curj] == 0){myqueue.push(make_pair(curi + 1, curj));dis[curi + 1][curj] = step + 1;vis[curi + 1][curj] = 1;}if(curj - 1 >= 0 && input[curi][curj - 1] == '.' && vis[curi][curj - 1] == 0){myqueue.push(make_pair(curi, curj - 1));