Submission #321222

#TimeUsernameProblemLanguageResultExecution timeMemory
321222fadi57Collecting Mushrooms (NOI18_collectmushrooms)C++14
28 / 100
40 ms4840 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; const int mx=5*1e5+6; const int mod= 998244353; const ll inf=2*1e16+9; int r,c,d,k; char a[mx]; ll pref[mx]; int get(int i){ int sum=0; int right=min(c-1,i+d); int left=max(0,i-d); sum=pref[right]; if(left==0){return sum;}return (sum-pref[left-1]); } int main() { cin>>r>>c>>d>>k; if(r==1){ ll ans=0; for(int i=0;i<c;i++){ cin>>a[i]; if(a[i]=='S'){ pref[i]++; } if(i!=0){pref[i]+=pref[i-1];} } for(int i=0;i<c;i++){ int sum=0; if(a[i]=='M'){ sum=get(i); } if(sum>=k){ans++;}// //cout<<pref[i]; } cout<<ans;return 0; } if(d==max(r,c)){ int mushrom=0;int s=0; for(int i=0;i<r;i++){ for(int j=0;j<c;j++){ char x; cin>>x;mushrom+=(x=='M'); s+=(x=='M'); } } if(s>=k){cout<<mushrom;}else{cout<<0;} 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...