Submission #1300529

#TimeUsernameProblemLanguageResultExecution timeMemory
1300529danglayloi1Collecting Mushrooms (NOI18_collectmushrooms)C++20
100 / 100
16 ms9660 KiB
#include <bits/stdc++.h> #define ii pair<int, int> #define fi first #define se second #define inf 0x3f3f3f3f3f3f3f3f using namespace std; using ll = long long; const ll mod=1e9+7; const int nx=5e5+5; int n, m, d, k, ans=0; vector<vector<char>> a; vector<vector<int>> s; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>>n>>m>>d>>k; a.assign(n+2, vector<char>(m+2)); s.assign(n+2, vector<int>(m+2, 0)); for(int i = 1; i <= n; i++) { for(int j = 1; j <= m; j++) { cin>>a[i][j]; if(a[i][j]=='S') { int x=max(1, i-d), y=max(1, j-d); int u=min(n, i+d), v=min(m, j+d); s[x][y]++; s[u+1][y]--; s[x][v+1]--; s[u+1][v+1]++; } } } for(int i = 1; i <= n; i++) { for(int j = 1; j <= m; j++) { s[i][j]+=s[i-1][j]+s[i][j-1]-s[i-1][j-1]; if(a[i][j]=='M' && s[i][j]>=k) ans++; } } 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...