This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#define ll long long
using namespace std;
char a[105][105];
int dp[105][105][105];
int main(){
int r,c,m;
cin>>r>>c>>m;
for(int i=1;i<=r;i++){
for(int j=1;j<=c;j++){
cin>>a[i][j];
}
}
int say=0;
string s;
cin>>s;
for (int i=1;i<=r;i++) {
for (int j=1;j<=c;j++) {
dp[i][j][0]=(a[i][j]=='.');
}
}
for(int k=1;k<=m;k++) {
for(int i=1; i<=r;i++) {
for(int j=1; j<=c;j++) {
if (a[i][j] == '#')
continue;
int x = i, y = j;
if (s[k-1]=='N')x++;
else if(s[k-1]=='S')x--;
else if(s[k-1]=='W')y++;
else if(s[k-1]=='E')y--;
else{
x--;
dp[i][j][k] |= dp[i - 1][j][k-1];
dp[i][j][k] |= dp[i][j - 1][k-1];
dp[i][j][k] |= dp[i + 1][j][k-1];
dp[i][j][k] |= dp[i][j + 1][k-1];
}
dp[i][j][k] |= dp[x][y][k-1];
}
}
}
for(int i=1;i<=r;i++) {
for(int j=1;j<=c;j++) {
say += dp[i][j][m];
}
}
cout<<say;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |