#include #include #include #include #include using namespace std; vector > vec[1001]; int dist[1000001]; int prv[1000001]; int main() { string line; int y=0; int n=0; while (1) { getline(cin, line); if (line == "") break; if (line[line.size()-1] != ' ') line += ' '; cout<<"line:"< p; p.first = v; p.second = node; vec[0].push_back(p); } if (y > 0) { int upper = node - n; //cout<<" upper:"< p; p.first = v; p.second = node; vec[upper].push_back(p); } if (x > 0) { int left = node - 1; //cout<<" left:"< p; p.first = v; p.second = node; vec[left].push_back(p); } current = ""; x++; } else { current += c; } } //cout<<" po loop x:"<, std::vector>, std::greater> > q; for (int i=0; i<=n*m; i++) { dist[i] = 1000000001; prv[i] = -1; pair p; p.first = p.second = q.push(i); } dist[0] = 0; while(!q.empty()) { int u = q.top(); q.pop(); int v = vec[u][0].second; cout<<"siez:"< dist[u] + vec[u][0].first) { dist[v] = dist[u] + vec[u][0].first; prv[v] = u; } if (vec[u].size() > 1) { int v = vec[u][1].second; cout<<" v:"< dist[u] + vec[u][1].first) { dist[v] = dist[u] + vec[u][1].first; prv[v] = u; } } } cout<