Submission #1303929

#TimeUsernameProblemLanguageResultExecution timeMemory
1303929nathlol2Collecting Mushrooms (NOI18_collectmushrooms)C++20
100 / 100
7 ms5344 KiB
#include <bits/stdc++.h>
using namespace std;

signed main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    int n, m, d, k;
    cin >> n >> m >> d >> k;
    string tb[n + 1];
    int pf[n + 1][m + 1];
    memset(pf, 0, sizeof pf);
    for(int i = 1;i<=n;i++){
        cin >> tb[i];
        tb[i] = " " + tb[i];
        for(int j = 1;j<=m;j++){
            pf[i][j] = (tb[i][j] == 'S') + pf[i - 1][j] + pf[i][j - 1] - pf[i - 1][j - 1];
        }
    }
    int ans = 0;
    for(int i = 1;i<=n;i++){
        for(int j = 1;j<=m;j++){
            if(tb[i][j] == 'M'){
                int top = min(n, i + d), bt = max(1, i - d), r = min(m, j + d), l = max(1, j - d);
                if(pf[top][r] - pf[top][l - 1] - pf[bt - 1][r] + pf[bt - 1][l - 1] >= k) ++ans;
            }
        }
    }
    cout << ans;
}
#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...