Submission #7417024
Source Code Expand
#include <iostream> #include <sstream> #include <vector> #include <string> #include <algorithm> #include <iterator> #include <utility> #include <numeric> #include <iomanip> #include <locale> #include <map> #include <set> #include <queue> #include <cstdlib> #include <cmath> using namespace std; vector<string> read(); string think(vector<string>); void write(string); vector<int> findCoordOf(char, vector<string>); bool isInArea(int, int, int, int); int main(int argc, char* argv[]) { cin.tie(0); ios::sync_with_stdio(false); auto input = read(); auto output = think(input); write(output); return 0; } vector<string> read() { int h, w; string buf; vector<string> input; cin >> h >> w; for (int i = 0; i < h; i++) { cin >> buf; input.push_back(buf.substr(0, w)); } return input; } string think(vector<string> input) { auto h = input.size(); auto w = input.at(0).size(); auto start = 's'; auto goal = 'g'; auto wall = '#'; auto sxy = findCoordOf(start, input); auto sx = sxy.at(0); auto sy = sxy.at(1); auto gxy = findCoordOf(goal, input); auto gx = gxy.at(0); auto gy = gxy.at(1); auto direction = vector< vector<int> >(); direction.push_back(vector<int> {1, 0}); direction.push_back(vector<int> {-1, 0}); direction.push_back(vector<int> {0, 1}); direction.push_back(vector<int> {0, -1}); auto visited = vector< vector<bool> > (h, vector<bool> (w, false)); auto q = queue< vector<int> >(); q.push(vector<int> {sx, sy}); while (!q.empty()) { auto v = q.front(); q.pop(); auto vx = v.at(0); auto vy = v.at(1); if (visited.at(vy).at(vx)) { continue; } if (input.at(vy).at(vx) == wall) { continue; } visited.at(vy).at(vx) = true; for (auto e : direction) { auto nx = vx + e.at(0); auto ny = vy + e.at(1); if (isInArea(nx, ny, w, h)) { q.push(vector<int> {nx, ny}); } } } if (visited.at(gy).at(gx)) { return "Yes"; } else { return "No"; } } void write(string output) { cout << output << endl; } vector<int> findCoordOf(char mark, vector<string> board) { for (int y = 0; y < board.size(); y++) { for (int x = 0; x < board.at(y).size(); x++) { if (board.at(y).at(x) == mark) { return vector<int> {x, y}; } } } return vector<int> {-1, -1}; } bool isInArea(int x, int y, int w, int h) { return (0 <= x) && (x < w) && (0 <= y) && (y < h); }
Submission Info
Submission Time | |
---|---|
Task | A - 深さ優先探索 |
User | vineyoshi |
Language | C++14 (GCC 5.4.1) |
Score | 100 |
Code Size | 2590 Byte |
Status | AC |
Exec Time | 113 ms |
Memory | 1040 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 100 / 100 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 00_sample_04.txt, 00_sample_05.txt |
All | 00_min_01.txt, 00_min_02.txt, 00_min_03.txt, 00_min_04.txt, 00_min_05.txt, 00_min_06.txt, 00_min_07.txt, 00_min_08.txt, 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 00_sample_04.txt, 00_sample_05.txt, 01_rnd_00.txt, 01_rnd_01.txt, 01_rnd_02.txt, 01_rnd_03.txt, 01_rnd_04.txt, 01_rnd_05.txt, 01_rnd_06.txt, 01_rnd_07.txt, 01_rnd_08.txt, 01_rnd_09.txt, 01_rnd_10.txt, 01_rnd_11.txt, 01_rnd_12.txt, 01_rnd_13.txt, 01_rnd_14.txt, 01_rnd_15.txt, 01_rnd_16.txt, 01_rnd_17.txt, 01_rnd_18.txt, 01_rnd_19.txt, 02_rndhard_00.txt, 02_rndhard_01.txt, 02_rndhard_02.txt, 02_rndhard_03.txt, 02_rndhard_04.txt, 02_rndhard_05.txt, 02_rndhard_06.txt, 02_rndhard_07.txt, 02_rndhard_08.txt, 02_rndhard_09.txt, 02_rndhard_10.txt, 02_rndhard_11.txt, 02_rndhard_12.txt, 02_rndhard_13.txt, 02_rndhard_14.txt, 02_rndhard_15.txt, 02_rndhard_16.txt, 02_rndhard_17.txt, 02_rndhard_18.txt, 02_rndhard_19.txt, 02_rndhard_20.txt, 02_rndhard_21.txt, 02_rndhard_22.txt, 02_rndhard_23.txt, 02_rndhard_24.txt, 02_rndhard_25.txt, 02_rndhard_26.txt, 02_rndhard_27.txt, 02_rndhard_28.txt, 02_rndhard_29.txt, 02_rndhard_30.txt, 02_rndhard_31.txt, 02_rndhard_32.txt, 02_rndhard_33.txt, 02_rndhard_34.txt, 02_rndhard_35.txt, 02_rndhard_36.txt, 02_rndhard_37.txt, 02_rndhard_38.txt, 02_rndhard_39.txt, 03_rndhardsmall_00.txt, 03_rndhardsmall_01.txt, 03_rndhardsmall_02.txt, 03_rndhardsmall_03.txt, 03_rndhardsmall_04.txt, 03_rndhardsmall_05.txt, 03_rndhardsmall_06.txt, 03_rndhardsmall_07.txt, 03_rndhardsmall_08.txt, 03_rndhardsmall_09.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
00_min_01.txt | AC | 1 ms | 256 KB |
00_min_02.txt | AC | 1 ms | 256 KB |
00_min_03.txt | AC | 1 ms | 256 KB |
00_min_04.txt | AC | 1 ms | 256 KB |
00_min_05.txt | AC | 1 ms | 256 KB |
00_min_06.txt | AC | 1 ms | 256 KB |
00_min_07.txt | AC | 1 ms | 256 KB |
00_min_08.txt | AC | 1 ms | 256 KB |
00_sample_01.txt | AC | 1 ms | 256 KB |
00_sample_02.txt | AC | 1 ms | 256 KB |
00_sample_03.txt | AC | 1 ms | 256 KB |
00_sample_04.txt | AC | 1 ms | 256 KB |
00_sample_05.txt | AC | 1 ms | 256 KB |
01_rnd_00.txt | AC | 3 ms | 768 KB |
01_rnd_01.txt | AC | 107 ms | 1040 KB |
01_rnd_02.txt | AC | 84 ms | 892 KB |
01_rnd_03.txt | AC | 113 ms | 1024 KB |
01_rnd_04.txt | AC | 105 ms | 1024 KB |
01_rnd_05.txt | AC | 2 ms | 640 KB |
01_rnd_06.txt | AC | 79 ms | 1024 KB |
01_rnd_07.txt | AC | 86 ms | 936 KB |
01_rnd_08.txt | AC | 2 ms | 640 KB |
01_rnd_09.txt | AC | 3 ms | 828 KB |
01_rnd_10.txt | AC | 53 ms | 964 KB |
01_rnd_11.txt | AC | 3 ms | 788 KB |
01_rnd_12.txt | AC | 98 ms | 948 KB |
01_rnd_13.txt | AC | 107 ms | 1024 KB |
01_rnd_14.txt | AC | 2 ms | 728 KB |
01_rnd_15.txt | AC | 73 ms | 1000 KB |
01_rnd_16.txt | AC | 3 ms | 768 KB |
01_rnd_17.txt | AC | 74 ms | 956 KB |
01_rnd_18.txt | AC | 2 ms | 768 KB |
01_rnd_19.txt | AC | 112 ms | 948 KB |
02_rndhard_00.txt | AC | 3 ms | 768 KB |
02_rndhard_01.txt | AC | 3 ms | 768 KB |
02_rndhard_02.txt | AC | 15 ms | 784 KB |
02_rndhard_03.txt | AC | 14 ms | 784 KB |
02_rndhard_04.txt | AC | 2 ms | 768 KB |
02_rndhard_05.txt | AC | 2 ms | 768 KB |
02_rndhard_06.txt | AC | 3 ms | 768 KB |
02_rndhard_07.txt | AC | 2 ms | 768 KB |
02_rndhard_08.txt | AC | 5 ms | 744 KB |
02_rndhard_09.txt | AC | 5 ms | 744 KB |
02_rndhard_10.txt | AC | 5 ms | 768 KB |
02_rndhard_11.txt | AC | 5 ms | 768 KB |
02_rndhard_12.txt | AC | 4 ms | 640 KB |
02_rndhard_13.txt | AC | 4 ms | 640 KB |
02_rndhard_14.txt | AC | 5 ms | 780 KB |
02_rndhard_15.txt | AC | 5 ms | 780 KB |
02_rndhard_16.txt | AC | 3 ms | 768 KB |
02_rndhard_17.txt | AC | 3 ms | 768 KB |
02_rndhard_18.txt | AC | 3 ms | 640 KB |
02_rndhard_19.txt | AC | 3 ms | 640 KB |
02_rndhard_20.txt | AC | 3 ms | 640 KB |
02_rndhard_21.txt | AC | 3 ms | 640 KB |
02_rndhard_22.txt | AC | 4 ms | 760 KB |
02_rndhard_23.txt | AC | 4 ms | 760 KB |
02_rndhard_24.txt | AC | 3 ms | 768 KB |
02_rndhard_25.txt | AC | 3 ms | 768 KB |
02_rndhard_26.txt | AC | 3 ms | 640 KB |
02_rndhard_27.txt | AC | 2 ms | 640 KB |
02_rndhard_28.txt | AC | 3 ms | 768 KB |
02_rndhard_29.txt | AC | 3 ms | 768 KB |
02_rndhard_30.txt | AC | 2 ms | 640 KB |
02_rndhard_31.txt | AC | 2 ms | 640 KB |
02_rndhard_32.txt | AC | 4 ms | 748 KB |
02_rndhard_33.txt | AC | 4 ms | 748 KB |
02_rndhard_34.txt | AC | 3 ms | 768 KB |
02_rndhard_35.txt | AC | 3 ms | 768 KB |
02_rndhard_36.txt | AC | 2 ms | 768 KB |
02_rndhard_37.txt | AC | 2 ms | 768 KB |
02_rndhard_38.txt | AC | 3 ms | 768 KB |
02_rndhard_39.txt | AC | 3 ms | 768 KB |
03_rndhardsmall_00.txt | AC | 1 ms | 256 KB |
03_rndhardsmall_01.txt | AC | 1 ms | 256 KB |
03_rndhardsmall_02.txt | AC | 1 ms | 256 KB |
03_rndhardsmall_03.txt | AC | 1 ms | 256 KB |
03_rndhardsmall_04.txt | AC | 1 ms | 256 KB |
03_rndhardsmall_05.txt | AC | 1 ms | 256 KB |
03_rndhardsmall_06.txt | AC | 1 ms | 256 KB |
03_rndhardsmall_07.txt | AC | 1 ms | 256 KB |
03_rndhardsmall_08.txt | AC | 1 ms | 256 KB |
03_rndhardsmall_09.txt | AC | 1 ms | 256 KB |