Submission #534649

#TimeUsernameProblemLanguageResultExecution timeMemory
534649devariaotaCollecting Mushrooms (NOI18_collectmushrooms)C++17
100 / 100
28 ms24284 KiB
#include <bits/stdc++.h> using namespace std; int r,c,d,k; int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cin >> r >> c >> d >> k; int arr[r+5][c+5]; int pref[r+5][c+5]; memset(arr,0,sizeof(arr)); memset(pref,0,sizeof(pref)); for(int i=1;i<=r;i++){ for(int j=1;j<=c;j++){ char x; cin >> x; if(x == '.') arr[i][j] = 0; else if(x == 'M') arr[i][j] = 1; else arr[i][j] = 2; } } for(int i=1;i<=r;i++){ for(int j=1;j<=c;j++){ if(arr[i][j] == 2){ pref[max(i-d,1)][max(j-d,1)]++; pref[max(i-d,1)][min(j+d+1,c+1)]--; pref[min((i+d+1),r+1)][max(j-d,1)]--; pref[min((i+d+1),r+1)][min(j+d+1,c+1)]++; } } } for(int i=1;i<=r;i++){ for(int j=1;j<=c;j++){ pref[i][j]+=pref[i-1][j]+pref[i][j-1]-pref[i-1][j-1]; } } int ans=0; for(int i=1;i<=r;i++){ for(int j=1;j<=c;j++){ // cout<<pref[i][j]<<" "; ans+=(pref[i][j]>=k&&arr[i][j]==1); } // cout<<endl; } cout << ans << endl; }
#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...