이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
int main(){
int n, m, op; cin >> n >> m >> op; n += 2, m += 2; bitset<255000> dp, ok;
for (int i = 1; i < n - 1; i++)
for (int j = 1; j < m - 1; j++){
char c; cin >> c;
if (c == '.') dp[i * m + j] = ok[i * m + j] = 1;
}
for (int i = 0; i < op; i++){
char c; cin >> c;
if (c == 'N') dp >>= m;
if (c == 'S') dp <<= m;
if (c == 'W') dp >>= 1;
if (c == 'E') dp <<= 1;
if (c == '?') dp = (dp << m) | (dp >> m) | (dp << 1) | (dp >> 1);
dp &= ok;
}
cout<<dp.count()<<endl;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |