Submission #533742

#TimeUsernameProblemLanguageResultExecution timeMemory
533742devariaotaCollecting Mushrooms (NOI18_collectmushrooms)C++17
100 / 100
29 ms13764 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef unsigned long ul; typedef double dbl; typedef pair<ll, ll> pll; typedef pair<int, int> pii; typedef map<ll, ll> mll; typedef pair<string, ll> psl; typedef map<string, ll> msl; typedef vector<int> vi; typedef vector<ll> vll; typedef deque<ll> deq; typedef priority_queue<ll, vector<ll>, greater<ll>> pqm; typedef priority_queue<pair<ll, int>, vector<pair<ll, int>>, greater<pair<ll, int>>> dij; typedef priority_queue<ll> pq; typedef string str; const ll mod=1e9+7; const ll maxn=1e5+1; ll gcd(ll a, ll b) { return a==0 ? b : gcd(a, b%a); } ll lcm(ll a, ll b) { ll ans=a*b; ans=ans/(gcd(a, b)); return ans; } #define ihacoy ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); #define dh << endl; #define co cout << #define udh cout << endl; #define spa << " "; #define ci cin >> #define fi first #define se second #define sp << " " << #define tes while(t--) #define pb push_back #define pf push_front #define pob pop_back() #define pof pop_front() #define gre greater<ll>() #define sip return 0 #define ub upper_bound #define lb lower_bound #define bs binary_search int r, c, d, k, ans; int main() { ihacoy ci r >> c >> d >> k; vector<vector<char>> grid(r+1, vector<char>(c+1)); vector<vi> area(r+2, vi(c+2)); vector<pii> mush; for(int i=1; i<=r; i++) { for(int j=1; j<=c; j++) { ci grid[i][j]; if(grid[i][j]=='M') { mush.pb({i, j}); } else if(grid[i][j]=='S') { area[max(1, i-d)][max(1, j-d)]++; area[max(1, i-d)][min(c+1, j+d+1)]--; area[min(r+1,i+d+1)][max(1, j-d)]--; area[min(r+1, i+d+1)][min(c+1, j+d+1)]++; } } } for(int i=1; i<=c; i++) { for(int j=1; j<=r; j++) { area[j][i]=area[j-1][i]+area[j][i]; } } for(int i=1; i<=r; i++) { for(int j=1; j<=c; j++) { area[i][j]=area[i][j-1]+area[i][j]; } } for(auto it : mush) { if(area[it.fi][it.se]>=k) ans++; } co 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...