Submission #641942

#TimeUsernameProblemLanguageResultExecution timeMemory
641942HibaKhalilCollecting Mushrooms (NOI18_collectmushrooms)C++14
100 / 100
33 ms5108 KiB
#include<bits/stdc++.h> using namespace std; int main (){ int r,c,d,k; cin>>r>>c>>d>>k; char grid[r+1][c+1]; for(int i=1;i<=r;i++) { for(int j=1;j<=c;j++) { cin>>grid[i][j]; } } int sprinkles[r+1][c+1]; for (int i=0;i<=r;i++) { for (int j=0;j<=c;j++) { if(i==0 || j==0) { sprinkles[i][j]=0; continue; } sprinkles[i][j]=sprinkles[i-1][j]; if(grid[i][j]=='S'){ sprinkles[i][j]++; } } } for (int i=1;i<=r;i++) { for (int j=1;j<=c;j++) { sprinkles[i][j]+=sprinkles[i][j-1]; } } int res = 0; for(int i=1;i<=r;i++) { for(int j=1;j<=c;j++) { if(grid[i][j]=='M'){ int i1 , j1 , i2 , j2; if(i-d>0) i1=i-d; else i1=1; if(i+d<=r) i2=i+d; else i2=r; if(j-d>0) j1=j-d; else j1=1; if(j+d<=c) j2=j+d; else j2=c; int tmp=sprinkles[i1-1][j2]+sprinkles[i2][j1-1]-sprinkles[i1-1][j1-1]; // cout<<tmp<<" "<<sprinkles[i2][j2]<<endl; if(sprinkles[i2][j2]-tmp>=k) { res++; } } } } cout<<res<<endl; return 0; }
#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...