Submission #2829191


Source Code Expand

#if !defined(__clang__) && defined(__GNUC__)
#include <bits/stdc++.h>
#else
#include <cstdlib>
#include <climits>
#include <iostream>
#include <cstdint>
#include <vector>
#include <string>
#include <complex>
#include <bitset>
#include <queue>
#include <deque>
#include <stack>
#include <utility>
#include <set>
#include <map>
#include <unordered_set>
#include <unordered_map>
#include <regex>
#endif //  !defined(__clang__) && defined(__GNUG__)
#include <boost/lexical_cast.hpp>
#include <boost/algorithm/string.hpp>
#include <boost/multi_array.hpp>
#include <boost/optional.hpp>
#include <boost/math/common_factor_rt.hpp>

using namespace std;


int main()
{
    int64_t H, W;
    std::cin >> H >> W;

    boost::multi_array<char, 2> C(boost::extents[H][W]);

    for (auto p = C.data(); p < (C.origin() + C.num_elements()); ++p) {
        std::cin >> *p;
    }

    auto f = [&C, H, W](auto y0, auto x0) -> void {
        using axis_t = decltype(x0);

        std::queue<std::pair<axis_t, axis_t>> q;

        // setup initilal position
        q.push({y0, x0});

        C[y0][x0] = '#';

        while (!q.empty()) {

            axis_t x, y;

            std::tie(y, x) = q.front();
            q.pop();

            // 四方に動くパターン
            constexpr std::pair<int, int> dirs4[] = {{1, 0}, {0, -1}, {-1, 0}, {0, 1}};
            for (auto dir: dirs4) {
                auto xx = x + dir.first;
                auto yy = y + dir.second;
                if (0 <= xx && xx < W && 0 <= yy && yy < H) {
                    if (C[yy][xx] == 'g') {
                        std::cout << "Yes" << std::endl;
                        return;
                    }
                    else if (C[yy][xx] == '.') {
                        C[yy][xx] = '#';
                        q.push({yy, xx});
                    }
                }
            }
        } // while()

        // 終了条件にマッチせず探索終了
        std::cout << "No" << std::endl;
    };

    for (int y = 0; y < H; ++y) {
        for (int x = 0; x < W; ++x) {
            if (C[y][x] == 's') {
                f(y, x);
                return 0;
            }
        }
    }

    return 0;
}

Submission Info

Submission Time
Task A - 深さ優先探索
User sumomoneko
Language C++14 (GCC 5.4.1)
Score 100
Code Size 2191 Byte
Status AC
Exec Time 19 ms
Memory 640 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 100 / 100
Status
AC × 5
AC × 83
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 15 ms 512 KB
01_rnd_01.txt AC 15 ms 512 KB
01_rnd_02.txt AC 17 ms 512 KB
01_rnd_03.txt AC 18 ms 512 KB
01_rnd_04.txt AC 17 ms 512 KB
01_rnd_05.txt AC 15 ms 512 KB
01_rnd_06.txt AC 18 ms 512 KB
01_rnd_07.txt AC 18 ms 512 KB
01_rnd_08.txt AC 15 ms 512 KB
01_rnd_09.txt AC 16 ms 512 KB
01_rnd_10.txt AC 18 ms 512 KB
01_rnd_11.txt AC 15 ms 512 KB
01_rnd_12.txt AC 19 ms 512 KB
01_rnd_13.txt AC 15 ms 512 KB
01_rnd_14.txt AC 15 ms 512 KB
01_rnd_15.txt AC 18 ms 512 KB
01_rnd_16.txt AC 16 ms 512 KB
01_rnd_17.txt AC 19 ms 512 KB
01_rnd_18.txt AC 15 ms 512 KB
01_rnd_19.txt AC 18 ms 512 KB
02_rndhard_00.txt AC 15 ms 512 KB
02_rndhard_01.txt AC 15 ms 512 KB
02_rndhard_02.txt AC 16 ms 512 KB
02_rndhard_03.txt AC 17 ms 512 KB
02_rndhard_04.txt AC 15 ms 512 KB
02_rndhard_05.txt AC 15 ms 512 KB
02_rndhard_06.txt AC 15 ms 512 KB
02_rndhard_07.txt AC 15 ms 512 KB
02_rndhard_08.txt AC 15 ms 512 KB
02_rndhard_09.txt AC 15 ms 512 KB
02_rndhard_10.txt AC 15 ms 512 KB
02_rndhard_11.txt AC 16 ms 640 KB
02_rndhard_12.txt AC 15 ms 512 KB
02_rndhard_13.txt AC 15 ms 512 KB
02_rndhard_14.txt AC 15 ms 512 KB
02_rndhard_15.txt AC 15 ms 512 KB
02_rndhard_16.txt AC 15 ms 512 KB
02_rndhard_17.txt AC 15 ms 512 KB
02_rndhard_18.txt AC 15 ms 512 KB
02_rndhard_19.txt AC 16 ms 512 KB
02_rndhard_20.txt AC 15 ms 512 KB
02_rndhard_21.txt AC 15 ms 512 KB
02_rndhard_22.txt AC 15 ms 512 KB
02_rndhard_23.txt AC 16 ms 512 KB
02_rndhard_24.txt AC 15 ms 512 KB
02_rndhard_25.txt AC 15 ms 512 KB
02_rndhard_26.txt AC 15 ms 512 KB
02_rndhard_27.txt AC 15 ms 512 KB
02_rndhard_28.txt AC 15 ms 512 KB
02_rndhard_29.txt AC 15 ms 512 KB
02_rndhard_30.txt AC 15 ms 512 KB
02_rndhard_31.txt AC 15 ms 512 KB
02_rndhard_32.txt AC 15 ms 512 KB
02_rndhard_33.txt AC 15 ms 512 KB
02_rndhard_34.txt AC 15 ms 512 KB
02_rndhard_35.txt AC 15 ms 512 KB
02_rndhard_36.txt AC 15 ms 512 KB
02_rndhard_37.txt AC 15 ms 512 KB
02_rndhard_38.txt AC 15 ms 512 KB
02_rndhard_39.txt AC 15 ms 512 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