제출 #995106

#제출 시각아이디문제언어결과실행 시간메모리
995106vjudge1Collecting Mushrooms (NOI18_collectmushrooms)C++17
100 / 100
13 ms32932 KiB
#include <bits/stdc++.h> using namespace std; const int maxN = 5e5 + 10; int n, m, k, d; string s[maxN]; vector <int> pre[maxN]; int get(int u, int v, int i, int j){ u = max(u, 1); v = max(v, 1); i = min(i, n); j = min(j, m); return pre[i][j] - pre[u - 1][j] - pre[i][v - 1] + pre[u - 1][v - 1]; } void Init(){ cin >> n >> m >> d >> k; pre[0].resize(m + 1); for (int i = 1; i <= n; ++i){ cin >> s[i]; s[i] = " " + s[i]; pre[i].resize(m + 1, 0); } for (int i = 1; i <= n; ++i){ for (int j = 1; j <= m; ++j){ pre[i][j] = pre[i][j - 1] + pre[i - 1][j] - pre[i - 1][j - 1] + (s[i][j] == 'S'); } } int ans = 0; for (int i = 1; i <= n; ++i){ for (int j = 1; j <= m; ++j){ if (s[i][j] != 'M') continue; int cnt = get(i - d, j - d, i + d, j + d); if (cnt >= k){ ++ans; } } } cout << ans; } signed main(){ ios_base::sync_with_stdio(0); cin.tie(0); Init(); }
#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...