제출 #862425

#제출 시각아이디문제언어결과실행 시간메모리
862425IrateCollecting Mushrooms (NOI18_collectmushrooms)C++14
79 / 100
2045 ms4852 KiB
#include<bits/stdc++.h>
using namespace std;

int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    int n, m, d, k;
    cin >> n >> m >> d >> k;
    vector<vector<char>>grid(n, vector<char>(m));
    vector<vector<int>>cnt(n, vector<int>(m));
    for(int i = 0;i < n;++i){
        for(int j = 0;j < m;++j){
            cin >> grid[i][j];
            if(grid[i][j] == 'S'){
                int x = max(i - d, 0);
                int y = max(j - d, 0);
                int x_end = min(i + d, n - 1);
                int y_end = min(j + d, m - 1);
                for(int i = x;i <= x_end;++i){
                    cnt[i][y] += 1;
                    if(y_end + 1 < m)cnt[i][y_end + 1] += -1;
                }
            }
        }
    }
    int res = 0;
    for(int i = 0;i < n;++i){
        int sum = 0;
        for(int j = 0;j < m;++j){
            sum += cnt[i][j];
            if(grid[i][j] == 'M' && sum >= k){
                res++;
            }
        }
    }
    cout << res;
}
#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...