Submission #621416

#TimeUsernameProblemLanguageResultExecution timeMemory
621416DrizzerCollecting Mushrooms (NOI18_collectmushrooms)C++14
60 / 100
2037 ms18652 KiB
//_______________(Created by Drizzer-https://codeforces.com/profile/Drizzer)__________________ #include <bits/stdc++.h> //#include <ext/rope> //#include <ext/pb_ds/assoc_container.hpp> //#include <ext/pb_ds/tree_policy.hpp> //using namespace __gnu_cxx; using namespace std; //-------------------------------------------------------------------------------------------- #define int long long #define ld long double #define int long long #define mp make_pair #define pb push_back #define all(v) v.begin(),v.end() #define F first #define S second #define PQ(type) priority_queue<type> //#define ordered_set tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update> //-------------------------------------------------------------------------------------------- typedef vector<int> vi; typedef vector<vi> vvi; typedef pair<int,int> pii; typedef set<int> si; typedef vector<pair<int,int>> vii; typedef map<int,int> mii; typedef map<char,int> mci; //-------------------------------------------------------------------------------------------- #define pi 3.141592653589793238 const int N = 2e5+10; const int N2 = 1e7+10; const int mod = 1e9+7; vi graph[N]; int vis[N]; //-------------------------------------------------------------------------------------------- /*void BfsDfs{ //void funcsolv(){ }*/ void uttar(); signed main() { ios_base::sync_with_stdio(0); cin.tie(NULL); cout.tie(NULL); int t=1; //cin>>t; while(t--){ uttar(); } return 0; } //-------------------------------------------------------------------------------------------- void uttar() { int r,c,d,k; cin>>r>>c>>d>>k; vector<pair<int,int>> s; vector<pair<int,int>> m; for(int i=0;i<r;i++){ for(int j=0;j<c;j++){ char ch; cin>>ch; if(ch=='M') m.push_back({i,j}); if(ch=='S') s.push_back({i,j}); } } map<pair<int,int>,int> mp; for(auto elem:s){ for(auto ind:m){ int sol = max(abs(elem.first-ind.first),abs(elem.second-ind.second)); if(sol<=d) mp[ind]++; } } int ans = 0; for(auto elem:mp){ if(elem.second>=k) ans++; } cout<<ans<<"\n"; } //____________________________________(Ended-Thanks)__________________________________________
#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...