#include <bits/stdc++.h>
using namespace std;
#define int long long
signed main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n, m, d, k;
cin >> n >> m >> d >> k;
vector<pair<int, int> > sp, ma;
for(int i = 0;i < n;i++) {
for(int j = 0;j < m;j++) {
char c;
cin >> c;
if(c == 'M') ma.push_back({i, j});
if(c == 'S') sp.push_back({i, j});
}
}
int cnt = 0;
map<pair<int, int>, int> mp;
for(int i = 0;i < sp.size();i++) {
for(int j = 0;j < ma.size();j++) {
int q = max(abs(sp[i].first - ma[j].first), abs(sp[i].second - ma[j].second));
if(q <= d) {
mp[{ma[j].first, ma[j].second}]++;
if(mp[{ma[j].first, ma[j].second}] == k) cnt++;
}
}
}
cout << cnt;
}
/*
1 2 3 4
1 2 4 3
1 3 2 4
1 3 4 2
1 4 2 3
1 4 3 2
2 3 4 1
2 4 3 1
1 2 3 4 5
1 2 3 5 4
1 2 4 3 5
1 2 4 5 3
1 2 5 3 4
1 2 5 4 3
1 3 2 4 5
1 3 2 5 4
1 3 4 2 5
1 3 4 5 2
1 3 5 2 4
1 3 5 4 2
1 4
*/
# | 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... |