This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int mx=5*1e5+6;
const int mod= 998244353;
const ll inf=2*1e16+9;
int r,c,d,k;
char a[mx];
ll pref[mx];
int get(int i){
int sum=0;
int right=min(c-1,i+d);
int left=max(0,i-d);
sum=pref[right];
if(left==0){return sum;}return (sum-pref[left-1]);
}
int main() {
cin>>r>>c>>d>>k;
if(r==1){
ll ans=0;
for(int i=0;i<c;i++){
cin>>a[i];
if(a[i]=='S'){
pref[i]++;
}
if(i!=0){pref[i]+=pref[i-1];}
} for(int i=0;i<c;i++){
int sum=0;
if(a[i]=='M'){
sum=get(i);
}
if(sum>=k){ans++;}//
//cout<<pref[i];
}
cout<<ans;return 0;
}
if(d==max(r,c)){
int mushrom=0;int s=0;
for(int i=0;i<r;i++){
for(int j=0;j<c;j++){
char x;
cin>>x;mushrom+=(x=='M');
s+=(x=='M');
}
}
if(s>=k){cout<<mushrom;}else{cout<<0;}
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... |