Submission #1280602

#TimeUsernameProblemLanguageResultExecution timeMemory
1280602alialiCollecting Mushrooms (NOI18_collectmushrooms)C++20
100 / 100
14 ms12784 KiB
//Bismillah #include <bits/stdc++.h> using namespace std; #define int long long //@author: abdinabiev const int N = 1e6 + 12, INF = 1e18; signed main() { ios::sync_with_stdio(false); cin.tie(0); int r, c, d, k; cin >>r >>c >>d >>k; vector<string> a(r + 1); for (int i = 1; i <= r; ++i) { string s; cin >>s; a[i] = s; } vector<vector<int>> ps(r + 1, vector<int>(c + 1, 0)); for (int i = 1; i <= r; ++i) { for (int j = 1; j <= c; ++j) { if (a[i][j - 1] == 'S') ps[i][j] = 1; } } for (int i = 1; i <= r; ++i) { for (int j = 1; j <= c; ++j) { ps[i][j] += ps[i - 1][j] + ps[i][j - 1] - ps[i - 1][j - 1]; } } int ans = 0; for (int i = 1; i <= r; ++i) { for (int j = 1; j <= c; ++j) { if (a[i][j - 1] != 'M') continue; int r1 = max((int)1, i - d); int c1 = max((int)1, j - d); int r2 = min(r, i + d); int c2 = min(c, j + d); int cnt = ps[r2][c2] - ps[r1 - 1][c2] - ps[r2][c1 - 1] + ps[r1 - 1][c1 - 1]; if (cnt >= 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...