# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
321218 | fadi57 | Collecting Mushrooms (NOI18_collectmushrooms) | C++14 | 26 ms | 1928 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#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(d=max(r,c)){
int mushrom=0;int s=0;
for(int i=0;i<r;i++){
for(int j=0;j<c;j++){
string x;\
cin>>x;mushrom+=(x=="M");
s+=(x=="S");
}
}
if(s>=k){cout<<mushrom;}else{cout<<0;}
return 0;
}
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;
}
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |