Submission #4092133
Source Code Expand
/**
* @brief AtCoder Regular Contest 005<br>
* C - 器物損壊!高橋君
*
* bfsパターン
* @see https://arc005.contest.atcoder.jp/tasks/arc005_3
*/
#include <iostream>
#include <queue>
using namespace std;
constexpr int MAX_R = 50;
constexpr int MAX_C = 50;
int R, C;
int sy, sx, gy, gx;
char grid[MAX_R][MAX_C+1];
int count[MAX_R][MAX_C];
constexpr int dy[]{-1, 0, 1, 0};
constexpr int dx[]{0, -1, 0, 1};
using P = pair<int, int>;
int bfs(int y, int x) {
queue<P> que;
::count[y][x] = 0;
que.push(P(y, x));
while (!que.empty()) {
P p = que.front();
que.pop();
int cnt = ::count[p.first][p.second];
if (p.first == gy && p.second == gx) {
return cnt;
}
++cnt;
for (int i{}; i < 4; ++i) {
int ny = p.first + dy[i];
int nx = p.second + dx[i];
if (ny < 0 || ny >= R ||
nx < 0 || nx >= C ||
::count[ny][nx] >= 0 ||
grid[ny][nx] == '#')
continue;
::count[ny][nx] = cnt;
que.push(P(ny, nx));
}
}
return -1;
}
int main() {
scanf("%d%d", &R, &C);
scanf("%d%d", &sy, &sx);
--sy;
--sx;
scanf("%d%d", &gy, &gx);
--gy;
--gx;
for (int r{}; r < R; ++r) {
scanf("%s", &grid[r][0]);
}
memset(::count, -1, sizeof(::count));
printf("%d\n", bfs(sy, sx));
return 0;
}
Submission Info
Submission Time |
|
Task |
C - 幅優先探索 |
User |
tatsu |
Language |
C++14 (Clang 3.8.0) |
Score |
100 |
Code Size |
1384 Byte |
Status |
AC |
Exec Time |
1 ms |
Memory |
256 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 |
1 ms |
256 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 |