Submission #1296837

#TimeUsernameProblemLanguageResultExecution timeMemory
1296837malmoNaval battle (CEOI24_battle)C++20
0 / 100
159 ms7336 KiB
#include <bits/stdc++.h> using namespace std; using pii=pair<int, int>; using ppiipii=pair<pair<int, int>, pair<int, int>>; vector<int> solve(int N, vector<int> X, vector<int> Y, vector<char> D){ vector<ppiipii> navi(N); for(int i=0; i<N; i++) navi[i]={{X[i], Y[i]}, {D[i], i}}; sort(navi.begin(), navi.end()); map<int, stack<int>> diag; vector<bool> isAlive(N, true); for(int i=0; i<N; i++){ if(navi[i].second.first=='E'){ diag[navi[i].first.first+navi[i].first.second].push(i); }else if(!diag[navi[i].first.first+navi[i].first.second].empty()){ isAlive[navi[i].second.second]=false; isAlive[diag[navi[i].first.first+navi[i].first.second].top()]=false; diag[navi[i].first.first+navi[i].first.second].pop(); } } vector<int> ans; for(int i=0; i<N; i++) if(isAlive[i]) ans.push_back(i+1); return ans; } int main(){ int N; cin >>N; vector<int> X(N), Y(N); vector<char> D(N); for(int i=0; i<N; i++) cin >>X[i] >>Y[i] >>D[i]; vector<int> ans=solve(N, X, Y, D); for(int i=0; i<ans.size(); i++) cout <<ans[i] <<'\n'; }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...