#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;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |