Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <iostream>#include <vector>#include <queue>//#include <fstream>using namespace std;struct Node{int x, y;Node(): x(0), y(0){}Node(int nodex, int nodey): x(nodex), y(nodey){}};void travel(vector<vector<char> > &matrix, Node &start, vector<vector<int> > &res){int width = matrix[0].size();int height = matrix.size();queue<Node> q;q.push(start);while(!q.empty()){Node curr = q.front();q.pop();for (int i = 1; curr.y-i >= 0 && matrix[curr.x][curr.y-i] != '#'; i++){if (res[curr.x][curr.y-i] == -1 || res[curr.x][curr.y-1] > res[curr.x][curr.y]+1){res[curr.x][curr.y-i] = res[curr.x][curr.y]+1;if(curr.y-i-1 < 0 || matrix[curr.x][curr.y-i-1] == '#')