Submission #394310

#TimeUsernameProblemLanguageResultExecution timeMemory
394310ZenWoRCollecting Mushrooms (NOI18_collectmushrooms)C++14
60 / 100
21 ms15932 KiB
#include <iostream> #include <vector> #include <map> #include <set> #include <algorithm> #define int ll #define ll long long #define ar array<int> #define pb(x) push_back(x) #define all(x) x.begin(),x.end() using namespace std; //https://oj.uz/problem/view/NOI18_collectmushrooms const int mxn=800; vector<vector<int>> t(mxn,vector<int>(mxn)); vector<vector<char>> a(mxn,vector<char>(mxn)); vector<pair<int,int>> coords; int R,C,D,K; void solve() { cin>>R>>C>>D>>K; for(int i=1;i<=R;i++) { for(int j=1;j<=C;j++) { cin>>a[i][j]; if(a[i][j]=='S') coords.push_back({i,j}); } } for(auto& e: coords) { int x=e.first,y=e.second; int x1=x-D,y1=y-D; int x2=x+D,y2=y+D; x1=max(x1,1LL); x2=min(x2,R); y1=max(y1,1LL); y2=min(y2,C); // cout<<"("<<x<<","<<y<<"): "<<x1<<" "<<y1<<"; "<<x2<<" "<<y2<<endl; t[x1][y1]++; t[x2+1][y2+1]++; t[x1][y2+1]--; t[x2+1][y1]--; } ll ans=0; for(int i=2;i<=R;i++) { for(int j=1;j<=C;j++) { t[i][j]+=t[i-1][j]; } } for(int i=1;i<=R;i++) { for(int j=2;j<=C;j++) { t[i][j]+=t[i][j-1]; } } for(int i=1;i<=R;i++) { for(int j=1;j<=C;j++) { // cout<<t[i][j]<<" "; if(a[i][j]=='M' and t[i][j]>=K) ans++; } // cout<<endl; } cout<<ans<<endl; } signed main() { ios::sync_with_stdio(false); cin.tie(nullptr); int T=1; //cin>>T; while(T--) solve(); 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...