Submission #162135
Source Code Expand
#include <iostream> #include <queue> #include <complex> using namespace std; struct edge { int x, y, step; edge(int x, int y, int step) : x(x), y(y), step(step) { } }; int main() { int W, H; cin >> H >> W; int m[50][50] = {0}; int sx, sy; cin >> sy >> sx; --sx, --sy; int gx, gy; cin >> gy >> gx; --gx, --gy; for (int y = 0; y < H; ++y) { string str; cin >> str; for (int x = 0; x < W; ++x) { m[y][x] = str[x] == '#' ? 1 : 0; } } int ans = -1; bool f[50][50] = {0}; queue<edge> Q; Q.push( edge(sx, sy, 0) ); while ( !Q.empty() ) { edge e = Q.front(); Q.pop(); if (e.x < 0 || e.x >= W || e.y < 0 || e.y >= H) continue; if (m[e.y][e.x]) continue; if (f[e.y][e.x]) continue; f[e.y][e.x] = true; if (e.x == gx && e.y == gy) { ans = e.step; break; } Q.push( edge(e.x + 1, e.y, e.step+1) ); Q.push( edge(e.x - 1, e.y, e.step+1) ); Q.push( edge(e.x, e.y + 1, e.step+1) ); Q.push( edge(e.x, e.y - 1, e.step+1) ); } cout << ans << endl; }
Submission Info
Submission Time | |
---|---|
Task | C - 幅優先探索 |
User | drafear |
Language | C++ (G++ 4.6.4) |
Score | 100 |
Code Size | 1031 Byte |
Status | AC |
Exec Time | 25 ms |
Memory | 928 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 | 24 ms | 812 KB |
subtask0_sample02.txt | AC | 24 ms | 920 KB |
subtask0_sample03.txt | AC | 23 ms | 812 KB |
subtask1_01.txt | AC | 23 ms | 924 KB |
subtask1_02.txt | AC | 25 ms | 880 KB |
subtask1_03.txt | AC | 24 ms | 924 KB |
subtask1_04.txt | AC | 23 ms | 924 KB |
subtask1_05.txt | AC | 23 ms | 856 KB |
subtask1_06.txt | AC | 24 ms | 880 KB |
subtask1_07.txt | AC | 23 ms | 876 KB |
subtask1_08.txt | AC | 23 ms | 924 KB |
subtask1_09.txt | AC | 24 ms | 880 KB |
subtask1_10.txt | AC | 23 ms | 928 KB |
subtask1_11.txt | AC | 22 ms | 924 KB |
subtask1_12.txt | AC | 23 ms | 924 KB |
subtask1_13.txt | AC | 23 ms | 860 KB |
subtask1_14.txt | AC | 23 ms | 928 KB |
subtask1_15.txt | AC | 23 ms | 928 KB |
subtask1_16.txt | AC | 23 ms | 860 KB |
subtask1_17.txt | AC | 23 ms | 924 KB |
subtask1_18.txt | AC | 23 ms | 924 KB |
subtask1_19.txt | AC | 23 ms | 876 KB |
subtask1_20.txt | AC | 23 ms | 920 KB |
subtask1_21.txt | AC | 24 ms | 872 KB |
subtask1_22.txt | AC | 24 ms | 868 KB |