Submission #1130327

#TimeUsernameProblemLanguageResultExecution timeMemory
1130327bachnvCollecting Mushrooms (NOI18_collectmushrooms)C++20
79 / 100
33 ms11672 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; ll n, m, d, k, pfs[1005][1005]; vector<pair<ll,ll>> v; int main(){ cin >> n >> m >> d >> k; for(int i = 1; i <= n; i++){ for(int j = 1; j <= m; j++){ char c; cin >> c; pfs[i][j] = pfs[i - 1][j] + pfs[i][j - 1] - pfs[i - 1][j - 1]; if(c == 'S'){ pfs[i][j]++; } if(c == 'M'){ v.push_back({i, j}); } } } ll res = 0; for(int i = 0; i < v.size(); i++){ ll x = v[i].first; ll y = v[i].second; ll temp = 0; x += d; y += d; if(x > n){ x = n; } if(y > m){ y = m; } ll a = v[i].first; ll b = v[i].second; a -= d; b -= d; if(a < 1){ a = 1; } if(b < 1){ b = 1; } temp = pfs[x][y] + pfs[a - 1][b - 1] - pfs[x][b - 1] - pfs[a - 1][y]; if(temp >= k){ res++; } } cout << res; }
#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...