#include <bits/stdc++.h>
using namespace std;
#define int long long int
int32_t main()
{
std::ios_base::sync_with_stdio(false);
std::cin.tie(NULL);
int n,m,d,k;
cin>>n>>m>>d>>k;
char grid[n][m];
vector<pair<int,int>>mus;
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++){
cin>>grid[i][j];
if(grid[i][j]=='M')
mus.push_back({i,j});
}
}
vector<vector<int>>p(n+1,vector<int>(m+1,0));
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
int s=0;
if(grid[i-1][j-1]=='S')
s=1;
p[i][j]=p[i-1][j]+p[i][j-1]-p[i-1][j-1]+s;
}
}int ans=0;
for(auto [i,j]:mus)
{
int r1=max(i-d,0LL);
int c1=max(j-d,0LL);
int r2=min(i+d,n-1);
int c2=min(j+d,m-1);
r1++;r2++;c2++;c1++;
int a=p[r2][c2]-p[r1-1][c2]-p[r2][c1-1]+p[r1-1][c1-1];
if(a>=k)
ans++;
}
cout<<ans<<endl;
return 0;
}
| # | 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... |