#include<bits/stdc++.h>
#define ff first
#define ss second
#define pb push_back
#define int long long
using namespace std;
signed main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	vector <pair <int, int> > mush, sprink; 
	int n, m, d, k;
	cin>>n>>m>>d>>k;
	char c[n+5][m+5];
	for(int i=1; i<=n; i++){
		for(int j=1; j<=m; j++){
			cin>>c[i][j];
			if(c[i][j]=='M'){
				mush.pb({i, j});
			}
			if(c[i][j]=='S'){
				sprink.pb({i, j});
			}
		}
	}
	int ans=0;
	sort(sprink.begin(), sprink.end());
	for(auto msh : mush){
		int i=msh.ff, j=msh.ss, cnt=0;
		for(auto spn : sprink){
			int x=spn.ff, y=spn.ss;
			if(d>=max(abs(x-i), abs(y-j))){
				cnt++;
			}
			else{
				break ;
			}
		}
		if(cnt>=k){
			ans++;
		}
	}
	cout<<ans;
}
| # | 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... |