Submission #728296

#TimeUsernameProblemLanguageResultExecution timeMemory
728296SanguineChameleonCircle selection (APIO18_circle_selection)C++17
7 / 100
139 ms1368 KiB
#include <bits/stdc++.h> using namespace std; void just_do_it(); int main() { #ifdef KAMIRULEZ freopen("kamirulez.inp", "r", stdin); freopen("kamirulez.out", "w", stdout); #endif ios_base::sync_with_stdio(0); cin.tie(0); just_do_it(); return 0; } struct circle { int x, y, r; }; bool intersect(circle C1, circle C2) { return 1LL * (C1.r + C2.r) * (C1.r + C2.r) >= 1LL * (C1.x - C2.x) * (C1.x - C2.x) + 1LL * (C1.y - C2.y) * (C1.y - C2.y); } const int maxn = 5e3 + 20; circle C[maxn]; int res[maxn]; set<pair<int, int>> S; void just_do_it() { int n; cin >> n; for (int i = 1; i <= n; i++) { cin >> C[i].x >> C[i].y >> C[i].r; S.insert({-C[i].r, i}); } while (!S.empty()) { int cur = S.begin()->second; auto it = S.begin(); while (it != S.end()) { int nxt = it->second; if (intersect(C[cur], C[nxt])) { res[nxt] = cur; it = S.erase(it); } else { it++; } } } for (int i = 1; i <= n; i++) { cout << res[i] << " "; } }
#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...