Submission #162583
Source Code Expand
#include <iostream> #include <sstream> #include <string> #include <vector> #include <set> using namespace std; vector<vector<string>> g_board; void print() { int R = g_board.size(); int C = g_board[0].size(); for(int y=0; y<R; ++y) { for(int x=0; x<C; ++x) { cout << g_board[y][x]; } cout << endl; } cout << "-----------------------" << endl; } int main(int argc, char* argv[]) { int R, C; cin >> R >> C; int sy, sx; cin >> sy >> sx; int gy, gx; cin >> gy >> gx; vector<string> board; for(int y=0; y<R; ++y) { string line; cin >> line; board.push_back(line); } set<int> prevPoints; set<int> curPoints; curPoints.insert((sy - 1) * C + (sx - 1)); int currentDepth = 0; int tmp = 0; while(true) { bool isFound = false; stringstream ss; string sCurrentDepth; ss << currentDepth; sCurrentDepth = ss.str(); set<int>::iterator it; prevPoints.clear(); for(it = curPoints.begin(); it!=curPoints.end(); ++it) { prevPoints.insert(*it); } curPoints.clear(); for(it = prevPoints.begin(); it!=prevPoints.end(); ++it) { int coord = *it; int y = (int)coord / C; int x = coord % C; g_board[y][x] = sCurrentDepth; if(x == gx - 1 && y == gy - 1) { isFound = true; break; } if(g_board[y - 1][x] == ".") { curPoints.insert((y - 1) * C + x); } if(g_board[y + 1][x] == ".") { curPoints.insert((y + 1) * C + x); } if(g_board[y][x - 1] == ".") { curPoints.insert(y * C + x - 1); } if(g_board[y][x + 1] == ".") { curPoints.insert(y * C + x + 1); } } if(isFound) { break; } currentDepth++; tmp++; } //print(); cout << currentDepth << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | C - 幅優先探索 |
User | wfalps |
Language | C++ (G++ 4.6.4) |
Score | 0 |
Code Size | 1834 Byte |
Status | CE |
Compile Error
./Main.cpp:8:24: error: ‘g_board’ was not declared in this scope ./Main.cpp:8:21: error: ‘>>’ should be ‘> >’ within a nested template argument list