Submission #1271538

#TimeUsernameProblemLanguageResultExecution timeMemory
1271538yeulerCollecting Mushrooms (NOI18_collectmushrooms)C++20
100 / 100
12 ms9196 KiB
#include <bits/stdc++.h> #define ll long long #define KAGAMINE ios_base::sync_with_stdio(false); #define LEN cin.tie(NULL); #define pls cout << "mantap\n"; #define fi first #define se second #define all(x) x.begin(), x.end() #define pb push_back #define vector2d(x) vector<vector<x>> #define pii pair<int, int> #define pl pair<ll, ll> using namespace std; int r, c, d, k; vector<pii> mus, spr; int addsum(vector2d(int)& pf, int r1, int c1, int r2, int c2){ int dec1 = 0, dec2 = 0, inc = 0; if (r1 > 0) dec1 = pf[r1-1][c2]; if (c1 > 0) dec2 = pf[r2][c1-1]; if (r1 > 0 && c1 > 0) inc = pf[r1-1][c1-1]; return pf[r2][c2] - dec1 - dec2 + inc; } void fin(){ vector2d(int) pf(r, vector<int>(c, 0)); for (auto [rs, cs] : spr){ pf[rs][cs] = 1; } for (int i = 0; i < r; i++){ for (int j = 0; j < c; j++){ if (i > 0) pf[i][j] += pf[i-1][j]; if (j > 0) pf[i][j] += pf[i][j-1]; if (i > 0 && j > 0) pf[i][j] -= pf[i-1][j-1]; } } int ans = 0; for (auto [mr, mc] : mus){ if (addsum(pf, max(0,mr-d), max(0,mc-d), min(r-1,mr+d), min(c-1,mc+d)) >= k){ ans++; } } cout << ans; } int main(){ KAGAMINE LEN cin >> r >> c >> d >> k; for (int i = 0; i < r; i++){ for (int j = 0; j < c; j++){ char tmp; cin >> tmp; if (tmp == 'S') spr.pb({i,j}); if (tmp == 'M') mus.pb({i,j}); } } fin(); // sub3(); 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...