Submission #691527
Source Code Expand
/*
迷路問題における幅優先探索
*/
#include<iostream>
#include<queue>
using namespace std;
const int MAX_M = 50;
const int MAX_N = 50;
const int INF = 10000000;
typedef pair<int, int> P;
char maze[MAX_N][MAX_M+1];
int N, M;
int sx, sy;
int gx, gy;
int d[MAX_N][MAX_M];
int dx[4] = {1, 0, -1, 0}, dy[4] = {0, 1, 0, -1};
int bfs();
void solve();
int main(){
cin>>N;
cin>>M;
cin>>sy;
cin>>sx;
cin>>gy;
cin>>gx;
sx--;
sy--;
gy--;
gx--;
for(int i = 0; i < N; i++){
for(int j = 0; j < M; j++){
cin>>maze[i][j];
}
}
solve();
return 0;
}
int bfs(){
queue<P> que;
for(int i = 0; i < N; i++)
for(int j = 0; j < M; j++) d[i][j] = INF;
que.push(P(sy, sx));
d[sy][sx] = 0;
while(que.size()){
P p = que.front(); que.pop();
if(p.first == gy && p.second == gx) break;
for(int i = 0; i < 4; i++){
int nx = p.first + dx[i], ny = p.second + dy[i];
if(0 <= nx && nx < N && 0 <= ny && ny < M && maze[nx][ny] != '#' && d[nx][ny] == INF){
que.push(P(nx, ny));
d[nx][ny] = d[p.first][p.second] + 1;
}
}
}
return d[gy][gx];
}
void solve(){
int res = bfs();
cout<<res<<endl;
}
Submission Info
| Submission Time | |
|---|---|
| Task | A - 幅優先探索 |
| User | hiroki6 |
| Language | C++14 (GCC 5.4.1) |
| Score | 100 |
| Code Size | 1273 Byte |
| Status | AC |
| Exec Time | 4 ms |
| Memory | 256 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 100 / 100 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | subtask0_sample01.txt, subtask0_sample02.txt, subtask0_sample03.txt |
| All | subtask0_sample01.txt, subtask0_sample02.txt, subtask0_sample03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| subtask0_sample01.txt | AC | 4 ms | 256 KiB |
| subtask0_sample02.txt | AC | 4 ms | 256 KiB |
| subtask0_sample03.txt | AC | 4 ms | 256 KiB |
| subtask1_01.txt | AC | 4 ms | 256 KiB |
| subtask1_02.txt | AC | 4 ms | 256 KiB |
| subtask1_03.txt | AC | 4 ms | 256 KiB |
| subtask1_04.txt | AC | 4 ms | 256 KiB |
| subtask1_05.txt | AC | 4 ms | 256 KiB |
| subtask1_06.txt | AC | 4 ms | 256 KiB |
| subtask1_07.txt | AC | 4 ms | 256 KiB |
| subtask1_08.txt | AC | 4 ms | 256 KiB |
| subtask1_09.txt | AC | 4 ms | 256 KiB |
| subtask1_10.txt | AC | 4 ms | 256 KiB |
| subtask1_11.txt | AC | 4 ms | 256 KiB |
| subtask1_12.txt | AC | 4 ms | 256 KiB |
| subtask1_13.txt | AC | 4 ms | 256 KiB |
| subtask1_14.txt | AC | 4 ms | 256 KiB |
| subtask1_15.txt | AC | 4 ms | 256 KiB |
| subtask1_16.txt | AC | 4 ms | 256 KiB |
| subtask1_17.txt | AC | 4 ms | 256 KiB |
| subtask1_18.txt | AC | 4 ms | 256 KiB |
| subtask1_19.txt | AC | 4 ms | 256 KiB |
| subtask1_20.txt | AC | 4 ms | 256 KiB |
| subtask1_21.txt | AC | 4 ms | 256 KiB |
| subtask1_22.txt | AC | 4 ms | 256 KiB |