Submission #1131562

#TimeUsernameProblemLanguageResultExecution timeMemory
1131562adkjtCollecting Mushrooms (NOI18_collectmushrooms)C++20
100 / 100
25 ms10424 KiB
#include<bits/stdc++.h> using namespace std; #define pii pair<int,int> #define f first #define s second vector<pii> mush; int main() { int r,c,k,d;cin>>r>>c>>d>>k; int qs[r+2][c+2]; for(int i=0;i<=r;i++) for(int j=0;j<=c;j++) qs[i][j]=0; for(int i=1;i<=r;i++) for(int j=1;j<=c;j++) { char x; cin>>x; qs[i][j]=qs[i][j-1]+qs[i-1][j]-qs[i-1][j-1]; if(x=='M') mush.push_back({i,j}); else if(x=='S') qs[i][j]++; } int ans=0; for(auto x:mush) { if(qs[min(r,x.f+d)][min(c,x.s+d)]-qs[max(0,x.f-d-1)][min(c,x.s+d)]-qs[min(r,x.f+d)][max(0,x.s-d-1)]+qs[max(0,x.f-d-1)][max(0,x.s-d-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...