#include <bits/stdc++.h>
using namespace std;
using ll = long long;
#define vi vector<long long>
#define all(x) x.begin(), x.end()
#define endl "\n"
#define pr pair<ll, ll>
#define ff first
#define ss second
void solution();
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
solution();
return 0;
}
vector<string> a;
ll r, c, d, k;
void ad(pr s, vector<vi> &m) {
int top = max(s.ff-d, 0ll);
int bot = min(s.ff+d, r-1);
int ri = min(s.ss + d, c-1);
int lf = max(s.ss-d, 0ll);
for (int i = top; i <= bot; i++) {
for (int j = lf; j <= ri; j++) m[i][j]++;
}
}
void solution() {
cin >> r >> c >> d >> k;
a.resize(r);
for (string &z : a) cin >> z;
vector<vi> m(r, vi(c));
for (int i = 0; i < r; i++) {
for (int j = 0; j < c; j++) {
if (a[i][j] == 'S') {
ad({i, j}, m);
}
}
}
ll ans = 0;
for (int i = 0; i < r; i++) {
for (int j = 0; j < c; j++) {
if (a[i][j] == 'M' && m[i][j] >= k){
// cout << i << " " << j << endl;
ans++;
}
}
}
cout << ans << 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... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |