# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
477100 | khr03ae | Circle selection (APIO18_circle_selection) | C++14 | 3089 ms | 18876 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
typedef long long i64;
const int MAX = 3e5 + 9;
struct Circle {
i64 x, y, rad;
} C[MAX];
int sorted[MAX], par[MAX];
bool deleted[MAX];
bool cmp(int i, int j) {
if (C[i].rad == C[j].rad) return i < j;
return C[i].rad > C[j].rad;
}
bool intercept(int i, int j) {
i64 dx = 1LL * C[i].x - 1LL * C[j].x;
i64 dy = 1LL * C[i].y - 1LL * C[j].y;
i64 dist2 = 1LL * dx * dx + 1LL * dy * dy;
i64 rad2 = 1LL * (C[i].rad + C[j].rad) * (C[i].rad + C[j].rad);
return dist2 <= rad2;
}
int main() {
int N;
scanf("%d", &N);
for (int i = 0; i < N; ++i) {
scanf("%lld%lld%lld", &C[i].x, &C[i].y, &C[i].rad);
}
// Initialize
for (int i = 0; i < N; ++i) {
sorted[i] = i;
deleted[i] = false;
}
sort(sorted, sorted + N, cmp);
for (int i = 0; i < N; ++i) {
int u = sorted[i];
if (deleted[u]) continue;
for (int j = i + 1; j < N; ++j) {
int v = sorted[j];
if (deleted[v]) continue;
if (intercept(u, v)) {
par[v] = u;
deleted[v] = true;
}
}
par[u] = u;
deleted[u] = true;
}
for (int i = 0; i < N; ++i) {
printf("%d ", par[i] + 1);
}
puts("\n");
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |