Submission #1329924

#TimeUsernameProblemLanguageResultExecution timeMemory
1329924exoworldgdCollecting Mushrooms (NOI18_collectmushrooms)C++20
100 / 100
17 ms24932 KiB
#include<bits/stdc++.h>
#define int long long
#define exoworldgd cin.tie(0)->sync_with_stdio(0),cout.tie(0)
using namespace std;
int n,m,d,k,ans;
string s[500005];
signed main(void){
    exoworldgd;
    cin>>n>>m>>d>>k;
    int a[n+1][m+1];memset(a,0,sizeof a);
    for(int i=1;i<=n;i++){
        cin>>s[i],s[i]=" "+s[i];
        for(int j=1;j<=m;j++)a[i][j]=(s[i][j]=='S')+a[i-1][j]+a[i][j-1]-a[i-1][j-1];
    }
    for(int i=1;i<=n;i++)for(int j=1,p,q,r,t;j<=m;j++)if(s[i][j]=='M')p=min(n,i+d),q=max(1ll,i-d),r=min(m,j+d),t=max(1ll,j-d),ans+=a[p][r]-a[p][t-1]-a[q-1][r]+a[q-1][t-1]>=k;
    cout<<ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...