Submission #1021357

#TimeUsernameProblemLanguageResultExecution timeMemory
1021357lamagrilCollecting Mushrooms (NOI18_collectmushrooms)C++14
100 / 100
24 ms27228 KiB
#include <bits/stdc++.h> using namespace std; int main(){ cin.tie(NULL)->sync_with_stdio(false); int n,m,d,k; cin >> n >> m >> d >> k; char mp[n+5][m+5]; int v[n+5][m+5],qs[n+5][m+5]; for(int i=0 ; i<=n ; i++){ for(int j=0 ; j<=m ; j++){ v[i][j]=0; qs[i][j]=0; } } int ans=0; for(int i=1 ; i<=n ; i++){ for(int j=1 ; j<=m ; j++){ cin >> mp[i][j]; } } for(int i=1 ; i<=n ; i++){ for(int j=1 ; j<=m ; j++){ if(mp[i][j]=='S'){ v[max(1,i-d)][max(1,j-d)]++; if(j+d+1<=m) v[max(1,i-d)][j+d+1]--; if(i+d+1<=n) v[i+d+1][max(1,j-d)]--; if(i+d+1<=n && j+d+1<=m) v[i+d+1][j+d+1]++; } } } for(int i=1 ; i<=n ; i++){ for(int j=1 ; j<=m ; j++){ qs[i][j]=qs[i-1][j]+qs[i][j-1]-qs[i-1][j-1]+v[i][j]; } } for(int i=1 ; i<=n ; i++){ for(int j=1 ; j<=m ; j++){ if(mp[i][j]=='M'){ if(qs[i][j]>=k) ans++; } } } cout << ans << '\n'; }
#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...