Submission #1164243

#TimeUsernameProblemLanguageResultExecution timeMemory
1164243ChottuFCollecting Mushrooms (NOI18_collectmushrooms)C++20
100 / 100
47 ms12636 KiB
#include<bits/stdc++.h> using namespace std; #define int long long signed main(){ int n,m,x,y; cin >> n >> m >> x >> y; vector<vector<char>> v(n,vector<char>(m)); for (int i=0; i<n; i++){ for (int j=0; j<m; j++) cin>>v[i][j]; } vector<vector<int>> frq(n+1,vector<int>(m+1)); for (int i=0; i<n; i++){ for (int j=0; j<m; j++){ if (v[i][j]=='.' or v[i][j]=='M')continue; if (n<m){ for (int k=max(0LL,i-x); k<=min(n-1,i+x); k++){ frq[k][max(j-x,0LL)]++; frq[k][min(j+x+1,m)]--; } } else{ for (int k=max(0ll,j-x); k<=min(m-1,j+x); k++){ frq[max(i-x,0ll)][k]++; frq[min(i+x+1,n)][k]--; } } } } if (n<m){ for (int i=0; i<n; i++){ for (int j=1; j<m; j++) frq[i][j]+=frq[i][j-1]; } } else{ for (int i=1; i<n; i++){ for (int j=0; j<m; j++) frq[i][j]+=frq[i-1][j]; } } int ans=0; for (int i=0; i<n; i++){ for (int j=0; j<m; j++){ if (v[i][j]=='M' && frq[i][j]>=y) ans++; } } cout<< ans << '\n'; return 0; }
#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...