#include <bits/stdc++.h>
#pragma GCC optimize("O2")
using namespace std;
#define int long long
#define vc vector<char>
#define vi vector<int>
#define vb vector<bool>
#define pi pair<int, int>
#define ppi pair<pair<int, int>, int>
#define multi multiset<int>
#define multp multiset<pi>
#define endl '\n'
const int INF = INT32_MAX;
const int MOD = 998244353;
const int S = 400;
const int MAXVAL = 4e5+5;
vector<vi> pFact(MAXVAL);
void solve() {
int r, c, d, k;
cin >> r >> c >> d >> k;
vector<string> grid(r);
vector<vi> sum(r, vi(c, 0));
for (int i = 0; i < r; i++) cin >> grid[i];
for (int i = 0; i < r; i++) {
for (int j = 0; j < c; j++) {
if (grid[i][j] != 'S') continue;
int x = max(i - d, 0ll), y = max(j - d, 0ll);
sum[x][y]++;
if (i + d + 1 < r) {
sum[i+d+1][y]--;
}
if (j + d + 1 < c) {
sum[x][j+d+1]--;
}
if ((i + d + 1 < r) && (j + d + 1 < c)) {
sum[i+d+1][j+d+1]++;
}
}
}
vector<vi> prfx(r, vi(c, 0));
prfx[0][0] = sum[0][0];
for (int i = 1; i < r; i++) {
prfx[i][0] = prfx[i-1][0] + sum[i][0];
}
for (int j = 1; j < c; j++) {
prfx[0][j] = prfx[0][j-1] + sum[0][j];
}
for (int i = 1; i < r; i++) {
for (int j = 1; j < c; j++) {
prfx[i][j] = prfx[i-1][j] + prfx[i][j-1] - prfx[i-1][j-1];
}
}
int res = 0;
for (int i = 0; i < r; i++) {
for (int j = 0; j < c; j++) {
if (grid[i][j] != 'M') continue;
if (prfx[i][j] >= k) res++;
}
}
cout << res << endl;
}
/*
0 0 0 0 0
0 1 0 0 -1
1 0 0 -1 0
0 0 0 0 0
0 -1 0 0 1
*/
signed main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr); cout.tie(nullptr);
bool test = 0;
int t;
if (!test) t = 1;
else cin >> t;
while (t--) {
solve();
}
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... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |