Submission #1271708

#TimeUsernameProblemLanguageResultExecution timeMemory
1271708ofozCollecting Mushrooms (NOI18_collectmushrooms)C++20
38 / 100
15 ms22524 KiB
#include <bits/stdc++.h> #pragma GCC optimize("O2") using namespace std; #define int long long #define vc vector<char> #define vi vector<int> #define vb vector<bool> #define pi pair<int, int> #define ppi pair<pair<int, int>, int> #define multi multiset<int> #define multp multiset<pi> #define endl '\n' const int INF = INT32_MAX; const int MOD = 998244353; const int S = 400; const int MAXVAL = 4e5+5; vector<vi> pFact(MAXVAL); void solve() { int r, c, d, k; cin >> r >> c >> d >> k; vector<string> grid(r); vector<vi> sum(r, vi(c, 0)); for (int i = 0; i < r; i++) cin >> grid[i]; for (int i = 0; i < r; i++) { for (int j = 0; j < c; j++) { if (grid[i][j] != 'S') continue; int x = max(i - d, 0ll), y = max(j - d, 0ll); sum[x][y]++; if (i + d + 1 < r) { sum[i+d+1][y]--; } if (j + d + 1 < c) { sum[x][j+d+1]--; } if ((i + d + 1 < r) && (j + d + 1 < c)) { sum[i+d+1][j+d+1]++; } } } vector<vi> prfx(r, vi(c, 0)); prfx[0][0] = sum[0][0]; for (int i = 1; i < r; i++) { prfx[i][0] = prfx[i-1][0] + sum[i][0]; } for (int j = 1; j < c; j++) { prfx[0][j] = prfx[0][j-1] + sum[0][j]; } for (int i = 1; i < r; i++) { for (int j = 1; j < c; j++) { prfx[i][j] = prfx[i-1][j] + prfx[i][j-1] - prfx[i-1][j-1]; } } int res = 0; for (int i = 0; i < r; i++) { for (int j = 0; j < c; j++) { if (grid[i][j] != 'M') continue; if (prfx[i][j] >= k) res++; } } cout << res << endl; } /* 0 0 0 0 0 0 1 0 0 -1 1 0 0 -1 0 0 0 0 0 0 0 -1 0 0 1 */ signed main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); bool test = 0; int t; if (!test) t = 1; else cin >> t; while (t--) { solve(); } 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...