제출 #1237589

#제출 시각아이디문제언어결과실행 시간메모리
1237589chikien2009Nautilus (BOI19_nautilus)C++20
100 / 100
129 ms544 KiB
#include <bits/stdc++.h>

using namespace std;

void setup()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
}

int n, m, k;
char c;
string s;
bitset<500> a[500], b[500], base[500];

int main()
{
    setup();

    cin >> n >> m >> k;
    for (int i = 0; i < n; ++i)
    {
        for (int j = 0; j < m; ++j)
        {
            cin >> c;
            a[i][j] = base[i][j] = (c == '.');
        }
    }
    cin >> s;
    for (auto &i : s)
    {
        for (int j = 0; j < n; ++j)
        {
            b[j].reset();
            if (i == 'E' || i == '?')
            {
                b[j] |= (a[j] << 1);
            }
            if (i == 'W' || i == '?')
            {
                b[j] |= (a[j] >> 1);
            }
            if ((i == 'N' || i == '?') && j + 1 < n)
            {
                b[j] |= a[j + 1];
            }
            if ((i == 'S' || i == '?') && j - 1 >= 0)
            {
                b[j] |= a[j - 1];
            }
        }
        for (int j = 0; j < n; ++j)
        {
            a[j] = b[j] & base[j];
        }
    }
    k = 0;
    for (int i = 0; i < n; ++i)
    {
        for (int j = 0; j < m; ++j)
        {
            k += a[i][j];
        }
    }
    cout << k;
    return 0;
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…