Submission #50353182


Source Code Expand

#include <bits/stdc++.h>
#include <atcoder/modint>

namespace {
    using ModInt [[maybe_unused]] = atcoder::modint998244353;
    using Num [[maybe_unused]] = long long int;
    using Vec [[maybe_unused]] = std::vector<Num>;
    using Set [[maybe_unused]] = std::set<Num>;
    using Mset [[maybe_unused]] = std::multiset<Num>;
    using Edges [[maybe_unused]] = std::vector<std::vector<Num>>;

    template<typename T>
    using Q [[maybe_unused]] = std::queue<T>;

    template<typename T>
    using PQ [[maybe_unused]] = std::priority_queue<T, std::vector<T>, std::greater<T>>;
}

void solve(std::istream& is, std::ostream& os) {
    Num h, w, n;
    is >> h >> w >> n;

    std::string t;
    is >> t;

    std::vector<std::string> grid(h);
    for(auto&& s : grid) {
        is >> s;
    }

    std::map<char, std::pair<Num, Num>> dirs {
        {'L', {0,-1}}, {'R', {0,1}}, {'U', {-1,0}}, {'D', {1,0}}};

    std::set<std::pair<Num,Num>> gs;
    for(Num init_y{1}; init_y<h; ++init_y) {
        for(Num init_x{1}; init_x<w; ++init_x) {
            bool valid = (grid.at(init_y).at(init_x) == '.');
            Num y = init_y;
            Num x = init_x;
            for(const auto& d : t) {
                const auto [dy, dx] = dirs[d];
                y += dy;
                x += dx;
                if ((y < 0) || (y >= h) || (x < 0) || (x >= w) || (grid.at(y).at(x) == '#')) {
                    valid = false;
                    break;
                }
            }

            if (valid) {
                gs.insert(std::make_pair(y, x));
            }
        }
    }

    os << gs.size() << "\n";
}

int main(void) {
    solve(std::cin, std::cout);
    return 0;
}

Submission Info

Submission Time
Task C - Takahashi Gets Lost
User zettsut
Language C++ 20 (gcc 12.2)
Score 250
Code Size 1747 Byte
Status AC
Exec Time 477 ms
Memory 19532 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 250 / 250
Status
AC × 2
AC × 40
Set Name Test Cases
Sample example0.txt, example1.txt
All 000.txt, 001.txt, 002.txt, 003.txt, 004.txt, 005.txt, 006.txt, 007.txt, 008.txt, 009.txt, 010.txt, 011.txt, 012.txt, 013.txt, 014.txt, 015.txt, 016.txt, 017.txt, 018.txt, 019.txt, 020.txt, 021.txt, 022.txt, 023.txt, 024.txt, 025.txt, 026.txt, 027.txt, 028.txt, 029.txt, 030.txt, 031.txt, 032.txt, 033.txt, 034.txt, 035.txt, 036.txt, 037.txt, example0.txt, example1.txt
Case Name Status Exec Time Memory
000.txt AC 460 ms 19460 KiB
001.txt AC 477 ms 19532 KiB
002.txt AC 220 ms 4032 KiB
003.txt AC 182 ms 4020 KiB
004.txt AC 200 ms 4036 KiB
005.txt AC 235 ms 4100 KiB
006.txt AC 466 ms 19504 KiB
007.txt AC 112 ms 10128 KiB
008.txt AC 4 ms 3848 KiB
009.txt AC 3 ms 3552 KiB
010.txt AC 2 ms 3648 KiB
011.txt AC 10 ms 4308 KiB
012.txt AC 31 ms 4876 KiB
013.txt AC 15 ms 5892 KiB
014.txt AC 56 ms 7000 KiB
015.txt AC 399 ms 17044 KiB
016.txt AC 369 ms 16928 KiB
017.txt AC 60 ms 11124 KiB
018.txt AC 104 ms 12372 KiB
019.txt AC 359 ms 18036 KiB
020.txt AC 7 ms 4364 KiB
021.txt AC 10 ms 4580 KiB
022.txt AC 14 ms 5952 KiB
023.txt AC 7 ms 4688 KiB
024.txt AC 13 ms 5688 KiB
025.txt AC 21 ms 6224 KiB
026.txt AC 24 ms 6668 KiB
027.txt AC 21 ms 6956 KiB
028.txt AC 45 ms 10356 KiB
029.txt AC 236 ms 9252 KiB
030.txt AC 241 ms 8832 KiB
031.txt AC 297 ms 11548 KiB
032.txt AC 388 ms 16184 KiB
033.txt AC 404 ms 16780 KiB
034.txt AC 418 ms 17552 KiB
035.txt AC 419 ms 17176 KiB
036.txt AC 415 ms 17240 KiB
037.txt AC 435 ms 18156 KiB
example0.txt AC 1 ms 3512 KiB
example1.txt AC 1 ms 3568 KiB