Submission #1151514

#TimeUsernameProblemLanguageResultExecution timeMemory
1151514dobri_okeCollecting Mushrooms (NOI18_collectmushrooms)C++20
79 / 100
48 ms16968 KiB
//#pragma GCC target ("avx2") //#pragma GCC optimize ("Ofast") #include <bits/stdc++.h> using namespace std; #define int long long #define F first #define S second #define pb push_back const int N = 1e3+100, NN=26; const int mod=1e9+7; int p[N][N]; //int gcd(int a, int b) { if (b == 0) return a; else return gcd(b, a % b); } //int lcm(int a, int b) { return a / gcd(a, b) * b; } //int binpow(int a,int b){if(!b)return 1; if(b&1)return a*binpow(a,b-1)%mod; int x=binpow(a,b/2); return x*x%mod;} signed main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int r, c, d, k; cin >> r >> c >> d >> k; char a[r+1][c+1]; for(int i=1;i<=r;i++){ for(int j=1;j<=c;j++) cin >> a[i][j]; } if(r==1){ int p2[c*2+1]{}, p3[c*2+1]{}; for(int i=1;i<=c;i++){ if(a[1][i]=='S'){ p2[i+1]++; p2[i+d+1]--; if(i!=1) p3[i-1]++; if(i>d) p3[i-d-1]--; } } for(int i=1;i<=c;i++){ p2[i]+=p2[i-1]; } for(int i=c;i>=1;i--){ p3[i]+=p3[i+1]; } int ans=0; for(int i=1;i<=c;i++){ if(a[1][i]=='M' && p2[i]+p3[i]>=k) ans++; } cout << ans; return 0; } for(int i=1;i<=r;i++){ for(int j=1;j<=c;j++){ if(a[i][j]=='S'){ for(int ii=max(i-d, 1ll);ii<=min(i+d, r);ii++){ for(int jj=max(j-d, 1ll);jj<=min(j+d, c);jj++){ p[ii][jj]++; } } } } } int ans=0; for(int i=1;i<=r;i++){ for(int j=1;j<=c;j++){; if(a[i][j]=='M' && p[i][j]>=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...