#include <bits/stdc++.h>
#define ii pair<int, int>
#define fi first
#define se second
#define inf 0x3f3f3f3f3f3f3f3f
using namespace std;
using ll = long long;
const ll mod=1e9+7;
const int nx=5e5+5;
int n, m, d, k, ans=0;
vector<vector<char>> a;
vector<vector<int>> s;
int main()
{
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
cin>>n>>m>>d>>k;
a.assign(n+2, vector<char>(m+2));
s.assign(n+2, vector<int>(m+2, 0));
for(int i = 1; i <= n; i++)
{
for(int j = 1; j <= m; j++)
{
cin>>a[i][j];
if(a[i][j]=='S')
{
int x=max(1, i-d), y=max(1, j-d);
int u=min(n, i+d), v=min(m, j+d);
s[x][y]++;
s[u+1][y]--;
s[x][v+1]--;
s[u+1][v+1]++;
}
}
}
for(int i = 1; i <= n; i++)
{
for(int j = 1; j <= m; j++)
{
s[i][j]+=s[i-1][j]+s[i][j-1]-s[i-1][j-1];
if(a[i][j]=='M' && s[i][j]>=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... |