Submission #3738396
Source Code Expand
#include <iostream>
#include <queue>
using namespace std;
#define MIN(x, y) ((x) < (y) ? (x) : (y))
#define MAX(x, y) ((x) > (y) ? (x) : (y))
#define DIVUP(x, y) (((x) + ((y) - 1)) / (y))
#define DIVOFF(x, y) (((x) + ((y) / 2)) / (y))
#define REMAINDER(x, y) ((x) % (y))
using P = pair<int, int>;
#define MAX_R 50
#define MAX_C 50
#define INF (MAX_R*MAX_C)
int R, C;
int sy, sx, gy, gx;
char maze[MAX_R][MAX_C+1];
int d[MAX_R][MAX_C];
int dr[]{-1, 0, 1, 0};
int dc[]{ 0, -1, 0, 1};
int bfs() {
queue<P> que;
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{}; i < 4; ++i) {
int ny = p.first + dr[i];
int nx = p.second + dc[i];
if (ny < 0 || ny >= R ||
nx < 0 || nx >= C ||
d[ny][nx] != INF || maze[ny][nx] == '#')
continue;
que.push(P(ny, nx));
d[ny][nx] = d[p.first][p.second] + 1;
}
}
return d[gy][gx];
}
int main() {
scanf("%d%d", &R, &C);
scanf("%d%d", &sy, &sx); --sy; --sx;
scanf("%d%d", &gy, &gx); --gy; --gx;
for (int i{}; i < R; ++i) {
for (int j{}; j < C; ++j) {
d[i][j] = INF;
}
scanf("%s", &maze[i][0]);
}
printf("%d\n", bfs());
return 0;
}
Submission Info
Submission Time |
|
Task |
C - 幅優先探索 |
User |
tatsu |
Language |
C++14 (Clang 3.8.0) |
Score |
100 |
Code Size |
1344 Byte |
Status |
AC |
Exec Time |
5 ms |
Memory |
888 KB |
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 |
5 ms |
888 KB |
subtask0_sample02.txt |
AC |
1 ms |
256 KB |
subtask0_sample03.txt |
AC |
1 ms |
256 KB |
subtask1_01.txt |
AC |
1 ms |
256 KB |
subtask1_02.txt |
AC |
1 ms |
256 KB |
subtask1_03.txt |
AC |
1 ms |
256 KB |
subtask1_04.txt |
AC |
1 ms |
256 KB |
subtask1_05.txt |
AC |
1 ms |
256 KB |
subtask1_06.txt |
AC |
1 ms |
256 KB |
subtask1_07.txt |
AC |
1 ms |
256 KB |
subtask1_08.txt |
AC |
1 ms |
256 KB |
subtask1_09.txt |
AC |
1 ms |
256 KB |
subtask1_10.txt |
AC |
1 ms |
256 KB |
subtask1_11.txt |
AC |
1 ms |
256 KB |
subtask1_12.txt |
AC |
1 ms |
256 KB |
subtask1_13.txt |
AC |
1 ms |
256 KB |
subtask1_14.txt |
AC |
1 ms |
256 KB |
subtask1_15.txt |
AC |
1 ms |
256 KB |
subtask1_16.txt |
AC |
1 ms |
256 KB |
subtask1_17.txt |
AC |
1 ms |
256 KB |
subtask1_18.txt |
AC |
1 ms |
256 KB |
subtask1_19.txt |
AC |
1 ms |
256 KB |
subtask1_20.txt |
AC |
1 ms |
256 KB |
subtask1_21.txt |
AC |
1 ms |
256 KB |
subtask1_22.txt |
AC |
1 ms |
256 KB |