#include <bits/stdc++.h>
using namespace std;
int main() {
cin.tie(0)->sync_with_stdio(0);
int rs, cs, d, k;
cin >> rs >> cs >> d >> k;
vector<vector<char>> grid(rs, vector<char>(cs));
vector<vector<int>> pfx(rs + 1, vector<int>(cs + 1));
for (int r = 0; r < rs; r++) {
for (int c = 0; c < cs; c++) {
cin >> grid[r][c];
if (grid[r][c] == 'S') {
int r1 = max(0, r - d);
int c1 = max(0, c - d);
int r2 = min(rs, r + d + 1);
int c2 = min(cs, c + d + 1);
pfx[r1][c1]++;
pfx[r1][c2]--;
pfx[r2][c1]--;
pfx[r2][c2]++;
}
}
}
for (int r = 0; r <= rs; r++) for (int c = 0; c < cs; c++) pfx[r][c + 1] += pfx[r][c];
for (int r = 0; r < rs; r++) for (int c = 0; c <= cs; c++) pfx[r + 1][c] += pfx[r][c];
int ans = 0;
for (int r = 0; r < rs; r++) for (int c = 0; c < cs; c++) if (pfx[r][c] == k && grid[r][c] == 'M') ans++;
cout << ans << '\n';
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |