Submission #498490

#TimeUsernameProblemLanguageResultExecution timeMemory
498490KiprasCircle selection (APIO18_circle_selection)C++14
7 / 100
3099 ms47072 KiB
#include <bits/stdc++.h> typedef long long ll; using namespace std; const int maxN = 3*1e5+1; ll n; //radius, index, pos.x, pos.y set<pair<ll, pair<ll, pair<ll, ll>>>> a; ll removedBy[maxN]; ll square(ll a){ return a*a; } int main() { cin>>n; for(int i = 1; i <= n; i++){ ll b, c, d; cin>>b>>c>>d; a.insert({-d, {i,{b, c}}}); } while(!a.empty()){ pair<ll, pair<ll, pair<ll, ll>>> temp = (*a.begin()); ll r=temp.first, ind=temp.second.first, posX=temp.second.second.first, posY=temp.second.second.second; a.erase(a.begin()); removedBy[ind]=ind; vector<pair<ll, pair<ll, pair<ll, ll>>>> removeList; for(auto x : a){ if(square(abs(x.second.second.first-posX))+square(abs(x.second.second.second-posY))<=square((r*-1)+(x.first*-1)))removeList.push_back(x); } for(auto x : removeList){ a.erase(a.find(x)); removedBy[x.second.first]=ind; } } for(int i = 1; i <= n; i++){ cout<<removedBy[i]<<" "; } return 0; }
#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...