Submission #197513

#TimeUsernameProblemLanguageResultExecution timeMemory
197513handlenameCollecting Mushrooms (NOI18_collectmushrooms)C++17
100 / 100
29 ms14828 KiB
#include <bits/stdc++.h>
using namespace std;
int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int r,c,d,k;
    cin>>r>>c>>d>>k;
    vector<pair<int,int> > mushrooms;
    int arr[r+1][c+1];
    int diff[r+2][c+2];
    memset(arr,0,sizeof(arr));
    memset(diff,0,sizeof(diff));
    for (int i=1;i<=r;i++){
        for (int j=1;j<=c;j++){
            char x;
            cin>>x;
            if (x=='M') mushrooms.push_back(make_pair(i,j));
            else if (x=='S') {
                int a=max(i-d,1);
                int b=max(j-d,1);
                int e=min(i+d,r)+1;
                int f=min(j+d,c)+1;
                diff[a][b]++;
                diff[a][f]--;
                diff[e][b]--;
                diff[e][f]++;
            }
        }
    }
    for (int i=1;i<=r;i++){
        for (int j=1;j<=c;j++){
            arr[i][j]=arr[i][j-1]+arr[i-1][j]-arr[i-1][j-1]+diff[i][j];
        }
    }
    int total=0;
    for (int i=0;i<mushrooms.size();i++){
        int x=mushrooms[i].first;
        int y=mushrooms[i].second;
        if (arr[x][y]>=k) total++;
    }
    cout<<total;
}

Compilation message (stderr)

mushrooms.cpp: In function 'int main()':
mushrooms.cpp:36:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (int i=0;i<mushrooms.size();i++){
                  ~^~~~~~~~~~~~~~~~~
#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...