Submission #477100

#TimeUsernameProblemLanguageResultExecution timeMemory
477100khr03aeCircle selection (APIO18_circle_selection)C++14
7 / 100
3089 ms18876 KiB
#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)

circle_selection.cpp: In function 'int main()':
circle_selection.cpp:30:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   30 |     scanf("%d", &N);
      |     ~~~~~^~~~~~~~~~
circle_selection.cpp:32:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   32 |         scanf("%lld%lld%lld", &C[i].x, &C[i].y, &C[i].rad);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#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...