#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;
typedef pair<ll,ll> ii;
typedef pair<ld,ld> id;
#define FOR(i, a, b) for(int i=(a); i<=(b); i++)
#define ROF(i, a, b) for(int i=(a); i>=(b); i--)
#define MEM(x, v) memset(x, v, sizeof(x))
#define FILL(x, n, v) fill(x, x+n, v);
#define ALL(x) x.begin(), x.end()
#define SORT(x) sort((x).begin(), (x).end())
#define CMPSORT(x, cp) sort((x).begin(), (x).end(), cp)
#define FAST ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
#define f first
#define s second
#define ins insert
#define e emplace
#define eb emplace_back
#define ef emplace_front
#define p push
#define pf push_front
#define pb push_back
#define mp make_pair
#define ub upper_bound
#define lb lower_bound
#define ft front
#define bk back
#define pp pop
#define ppb pop_back
#define ppf pop_front
#define db cout<<"YEET\n";
#define ct(x) cout<<x<<'\n';
const ll MOD = 1e9+7; //998244353
const ll MAXN = 2e5+5;
const ll INF = 1e18;
const ld PI = acos((ld)-1);
int main(){
FAST
ll r, c, k;
bitset<505> dp[505], sea[505], prev[505];
cin >> r >> c >> k;
FOR(i,1,r){
FOR(j,1,c){
char ch;
cin >> ch;
if (ch == '.'){
sea[i][j]=1;
dp[i][j]=1;
prev[i][j]=1;
} else {
sea[i][j]=0;
dp[i][j]=0;
prev[i][j]=0;
}
}
}
FOR(i,1,k){
char ch;
cin >> ch;
FOR(j,1,r){
if (ch == 'N'){
dp[j] = prev[j+1]&sea[j];
} else if (ch == 'E'){
dp[j] = (prev[j]<<1)&sea[j];
} else if (ch == 'S'){
dp[j] = prev[j-1]&sea[j];
} else if (ch == 'W'){
dp[j] = (prev[j]>>1)&sea[j];
} else {
dp[j] = (prev[j-1] | prev[j+1] | prev[j]>>1 | prev[j]<<1)&sea[j];
}
}
FOR(j,1,r) prev[j]=dp[j];
}
ll res=0;
FOR(i,1,r) res+=dp[i].count();
cout << res;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
5 ms |
376 KB |
Output is correct |
2 |
Correct |
5 ms |
376 KB |
Output is correct |
3 |
Correct |
5 ms |
380 KB |
Output is correct |
4 |
Correct |
5 ms |
376 KB |
Output is correct |
5 |
Correct |
5 ms |
504 KB |
Output is correct |
6 |
Correct |
5 ms |
376 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
5 ms |
376 KB |
Output is correct |
2 |
Correct |
5 ms |
376 KB |
Output is correct |
3 |
Correct |
5 ms |
380 KB |
Output is correct |
4 |
Correct |
5 ms |
376 KB |
Output is correct |
5 |
Correct |
5 ms |
504 KB |
Output is correct |
6 |
Correct |
5 ms |
376 KB |
Output is correct |
7 |
Correct |
5 ms |
376 KB |
Output is correct |
8 |
Correct |
5 ms |
376 KB |
Output is correct |
9 |
Correct |
5 ms |
504 KB |
Output is correct |
10 |
Correct |
5 ms |
376 KB |
Output is correct |
11 |
Correct |
5 ms |
376 KB |
Output is correct |
12 |
Correct |
6 ms |
504 KB |
Output is correct |
13 |
Correct |
6 ms |
376 KB |
Output is correct |
14 |
Correct |
6 ms |
376 KB |
Output is correct |
15 |
Correct |
6 ms |
376 KB |
Output is correct |
16 |
Correct |
6 ms |
376 KB |
Output is correct |
17 |
Correct |
6 ms |
376 KB |
Output is correct |
18 |
Correct |
6 ms |
376 KB |
Output is correct |
19 |
Correct |
6 ms |
504 KB |
Output is correct |
20 |
Correct |
6 ms |
376 KB |
Output is correct |
21 |
Correct |
6 ms |
248 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
5 ms |
376 KB |
Output is correct |
2 |
Correct |
5 ms |
376 KB |
Output is correct |
3 |
Correct |
5 ms |
380 KB |
Output is correct |
4 |
Correct |
5 ms |
376 KB |
Output is correct |
5 |
Correct |
5 ms |
504 KB |
Output is correct |
6 |
Correct |
5 ms |
376 KB |
Output is correct |
7 |
Correct |
5 ms |
376 KB |
Output is correct |
8 |
Correct |
5 ms |
376 KB |
Output is correct |
9 |
Correct |
5 ms |
504 KB |
Output is correct |
10 |
Correct |
5 ms |
376 KB |
Output is correct |
11 |
Correct |
5 ms |
376 KB |
Output is correct |
12 |
Correct |
6 ms |
504 KB |
Output is correct |
13 |
Correct |
6 ms |
376 KB |
Output is correct |
14 |
Correct |
6 ms |
376 KB |
Output is correct |
15 |
Correct |
6 ms |
376 KB |
Output is correct |
16 |
Correct |
6 ms |
376 KB |
Output is correct |
17 |
Correct |
6 ms |
376 KB |
Output is correct |
18 |
Correct |
6 ms |
376 KB |
Output is correct |
19 |
Correct |
6 ms |
504 KB |
Output is correct |
20 |
Correct |
6 ms |
376 KB |
Output is correct |
21 |
Correct |
6 ms |
248 KB |
Output is correct |
22 |
Correct |
113 ms |
728 KB |
Output is correct |
23 |
Correct |
116 ms |
760 KB |
Output is correct |
24 |
Correct |
111 ms |
636 KB |
Output is correct |
25 |
Correct |
108 ms |
632 KB |
Output is correct |
26 |
Correct |
112 ms |
632 KB |
Output is correct |
27 |
Correct |
177 ms |
632 KB |
Output is correct |
28 |
Correct |
179 ms |
760 KB |
Output is correct |
29 |
Correct |
180 ms |
632 KB |
Output is correct |
30 |
Correct |
179 ms |
632 KB |
Output is correct |
31 |
Correct |
179 ms |
632 KB |
Output is correct |
32 |
Correct |
232 ms |
632 KB |
Output is correct |
33 |
Correct |
231 ms |
632 KB |
Output is correct |
34 |
Correct |
230 ms |
632 KB |
Output is correct |
35 |
Correct |
236 ms |
632 KB |
Output is correct |
36 |
Correct |
230 ms |
760 KB |
Output is correct |