Submission #162936
Source Code Expand
#include <vector> #include <list> #include <map> #include <set> #include <queue> #include <deque> #include <stack> #include <bitset> #include <algorithm> #include <functional> #include <numeric> #include <utility> #include <sstream> #include <iostream> #include <iomanip> #include <cstdio> #include <cmath> #include <cstdlib> #include <ctime> #define max(x, y) (((x) > (y))? (x) : (y)) #define abs(x) (((x) < 0)? (-1*(x)) : (x)) #define FORI(s, e) for (int i = (s); i < (e); i++) #define FOR(i, s, e) for (int i = (s); i < (e); i++) #define REP(i, e) FOR(i, 0, e) #define sz(a) (a.size()) //int dp[10000][10000]; using namespace std; const int INF = 10000; int R, C, sy, sx, gy, gx; int d[50][50]; char r[50][50]; typedef pair<int, int> P; int dx[4] = {1, 0, -1, 0}; int dy[4] = {0, -1, 0, 1}; int main() { int nx, ny; queue<P> q; cin >> R >> C; cin >> sy >> sx; cin >> gy >> gx; REP(i, R) REP(j, C) { cin >> r[i][j]; d[i][j] = INF; } q.push(P(sx, sy)); d[sy][sx] = 0; while (q.size()) { P p = q.front(); q.pop(); if (p.first == gx && p.second == gy) break; REP(i, 4) { nx = p.first + dx[i]; ny = p.second + dy[j]; if (0 <= nx && nx < R && 0 <= ny && ny <= C && r[ny][nx] == '.' && d[ny][nx] == INF) { q.push(P(nx, ny)); d[ny][nx] = d[p.second][p.first] + 1; } } } cout << d[gy][gx] << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | C - 幅優先探索 |
User | ericode |
Language | C++ (G++ 4.6.4) |
Score | 0 |
Code Size | 1440 Byte |
Status | CE |
Compile Error
./Main.cpp: In function ‘int main()’: ./Main.cpp:62:46: error: ‘j’ was not declared in this scope