結果
問題 |
No.8063 幅優先探索
|
ユーザー |
![]() |
提出日時 | 2020-04-01 22:05:09 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 917 bytes |
コンパイル時間 | 2,639 ms |
コンパイル使用メモリ | 204,356 KB |
最終ジャッジ日時 | 2025-01-09 12:01:43 |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 5 WA * 4 |
ソースコード
#include <bits/stdc++.h> using namespace std; queue<pair<pair<int,int>,int>> que; void push_que(int x,int y,int cnt){ que.push(make_pair(make_pair(x+1,y),cnt+1)); que.push(make_pair(make_pair(x-1,y),cnt+1)); que.push(make_pair(make_pair(x,y+1),cnt+1)); que.push(make_pair(make_pair(x,y-1),cnt+1)); } int main(){ int R,C; cin>>R>>C; int sy,sx,gy,gx; cin>>sy>>sx>>gy>>gx; sx--;sy--;gx--;gy--; string s[R]; for(int i=0;i<R;i++){ cin>>s[i]; } vector<vector<int>> mini(C,vector<int>(R,-1));//mini[x][y]; mini[sx][sy]=0; push_que(sx,sy,0); while(true){ if(que.size()==0)break; pair<pair<int,int>,int> a = que.front(); que.pop(); int x = a.first.first; int y = a.first.second; int c = a.second; if(x<0||x>=C)continue; if(y<0||y>=R)continue; if(s[y][x]=='#')continue; if(mini[x][y]!=-1)continue; mini[x][y]=c; push_que(x,y,c); } cout<<mini[gx][gy]<<endl; return 0; }