#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<vector>
using namespace std;
#define abs(x) ((x>0)?(x):(-(x)))
#define max(x,y) ((x>y)?x:y)
int main()
{
int R, C, D, K;
cin >> R >> C >> D >> K;
vector<pair<int, int>> mushroom = {};
vector<pair<int, int>> sprinkler = {};
for (int a = 0; a < R; a++)
{
for (int b = 0; b < C; b++)
{
char in;
cin >> in;
if (in == 'M')
mushroom.push_back({ a,b });
if (in == 'S')
sprinkler.push_back({ a,b });
}
}
int s1 = mushroom.size(), s2 = sprinkler.size();
int out=0;
for (int a = 0; a < s1; a++)
{
int num = 0;
for (int b = 0; b < s2; b++)
{
//cout << max(abs(mushroom[a].first - sprinkler[b].first), abs(mushroom[a].second - sprinkler[b].second))<<" ";
if (max(abs(mushroom[a].first - sprinkler[b].first), abs(mushroom[a].second - sprinkler[b].second)) <= D)
num++;
}
//cout << endl;
if (num >= K)
out++;
}
cout << out;
//cout << endl << endl << abs((- 3)) << " " << abs((5));
}
# | 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... |