#include<bits/stdc++.h>
using namespace std;
#define ff first
#define ss second
#define pb push_back
signed main(){
int n,m,d,k;
cin>>n>>m>>d>>k;
vector<vector<char>> a(n+4, vector<char>(m+3));
vector<vector<int>> cnt(n+4, vector<int>(m+3));
vector<vector<int>> ps(n+4, vector<int>(m+3));
vector<vector<int>>vc;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>a[i][j];
if(a[i][j]=='S'){
int y1=max(1,i-d);
int y2=min(n,i+d);
int x1=max(1,j-d);
int x2=min(m,j+d);
ps[y1][x1]++;
ps[y1][x2+1]--;
ps[y2+1][x1]--;
ps[y2+1][x2+1]++;
}
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
ps[i][j]+=ps[i][j-1]+ps[i][j-1]-ps[i-1][j-1];
}
}
int p=0;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(a[i][j]=='M' and ps[i][j]>=k)p++;
}
}
cout<<p;
}
# | 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... |