#include<bits/stdc++.h>
using namespace std;
#define pii pair<int,int>
#define f first
#define s second
vector<pii> mush;
int main()
{
int r,c,k,d;cin>>r>>c>>d>>k;
int qs[r+2][c+2];
for(int i=0;i<=r;i++)
for(int j=0;j<=c;j++)
qs[i][j]=0;
for(int i=1;i<=r;i++)
for(int j=1;j<=c;j++)
{
char x;
cin>>x;
qs[i][j]=qs[i][j-1]+qs[i-1][j]-qs[i-1][j-1];
if(x=='M') mush.push_back({i,j});
else if(x=='S') qs[i][j]++;
}
int ans=0;
for(auto x:mush)
{
if(qs[min(r,x.f+d)][min(c,x.s+d)]-qs[max(0,x.f-d-1)][min(c,x.s+d)]-qs[min(r,x.f+d)][max(0,x.s-d-1)]+qs[max(0,x.f-d-1)][max(0,x.s-d-1)]>=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... |