Submission #701388

#TimeUsernameProblemLanguageResultExecution timeMemory
701388Abrar_Al_SamitCircle selection (APIO18_circle_selection)C++17
7 / 100
3065 ms35340 KiB
#include<bits/stdc++.h> using namespace std; long long sqrd(int x) { return x * 1LL * x; } struct circle { int x, y, r, j; bool operator< (const circle& b) const { if(r!=b.r) return r > b.r; return j < b.j; } bool intersect(const circle& b) const { return sqrd(x-b.x) + sqrd(y-b.y) <= sqrd(r+b.r); } }; void PlayGround() { int n; cin>>n; set<circle>s; for(int i=0; i<n; ++i) { int x, y, r; cin>>x>>y>>r; circle z = {x, y, r, i+1}; s.insert(z); } int ans[n+1]; while(!s.empty()) { auto cur = *s.begin(); s.erase(cur); ans[cur.j] = cur.j; vector<circle>cache; for(auto z : s) { if(cur.intersect(z)) { cache.push_back(z); ans[z.j] = cur.j; } } for(auto z : cache) { s.erase(z); } } for(int i=1; i<=n; ++i) { cout<<ans[i]<<' '; } // cerr << "Time elapsed: " << 1.0 * clock() / CLOCKS_PER_SEC << " s.\n"; } int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); PlayGround(); 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...