結果
問題 | No.8063 幅優先探索 |
ユーザー |
![]() |
提出日時 | 2020-05-21 22:34:01 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,631 bytes |
コンパイル時間 | 1,097 ms |
コンパイル使用メモリ | 109,688 KB |
実行使用メモリ | 9,472 KB |
最終ジャッジ日時 | 2024-10-02 08:39:24 |
合計ジャッジ時間 | 1,895 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 5 WA * 4 |
ソースコード
#include<iostream>#include<string>#include<algorithm>#include<vector>#include<queue>#include<map>#include<math.h>#include<iomanip>#include<set>#include<numeric>#include<cstring>#include<cstdio>#include<functional>#include<bitset>#include<limits.h>#include<cassert>#include<iterator>#include<complex>#include<stack>#include<sstream>#include<iterator>#include<list>using namespace std;typedef long long int lint;#define rep(i, n) for (lint i = 0; i < n; i++)#define sort(v) sort((v).begin(), (v).end())#define reverse(v) reverse((v).begin(), (v).end())#define upper(v,hoge) upper_bound(v.begin(),v.end(),hoge)#define lower(v,hoge) lower_bound(v.begin(),v.end(),hoge)#define mp make_pair#define P pair<int,int>#define enld endlint main() {const int INF = 1 << 30;const int di[4] = { 0,1,0,-1 };const int dj[4] = { 1,0,-1,0 };int h, w;cin >> h >> w;int sy, sx, gy, gx;cin >> sy >> sx >> gy >> gx;vector<string> field(h);for (int i = 0; i < h; i++) {cin >> field[i];}// BFSvector<vector<int> > d(h, vector<int>(w, INF));d[sy-1][sx-1] = 1;queue<P> que;que.push(P(sy-1, sx-1));while (!que.empty()) {P pos = que.front();que.pop();int i = pos.first, j = pos.second;for (int k = 0; k < 4; k++) {int ni = i + di[k], nj = j + dj[k];if (ni < 0 || ni >= h) continue;if (nj < 0 || nj >= w) continue;if (field[ni][nj] == '#') continue;if (d[ni][nj] > d[i][j] + 1) {d[ni][nj] = d[i][j] + 1;que.push(P(ni, nj));}}}if (d[gy - 1][gx - 1] == INF) {cout << -1 << endl;}else {cout << d[gy - 1][gx - 1]-1 << endl;}}