Submission #217752

#TimeUsernameProblemLanguageResultExecution timeMemory
217752VimmerCircle selection (APIO18_circle_selection)C++14
7 / 100
3081 ms18296 KiB
#include <bits/stdc++.h>

#define F first
#define S second
#define sz(x) int(x.size())
#define pb push_back
#define N 300005
#define M ll(998244353)

using namespace std;

typedef long double ld;
typedef long long ll;
typedef short int si;



int main()
{
    ios_base::sync_with_stdio(0); istream::sync_with_stdio(0); cin.tie(0); cout.tie(0);

    int n;

    cin >> n;

    int ans[n];

    for (int i = 0; i < n; i++) ans[i] = -1;

    ld x[n], y[n], r[n];

    for (int i = 0; i < n; i++) cin >> x[i] >> y[i] >> r[i];

    int s = n;

    while (s > 0)
    {
        int nm = -1;

        for (int i = 0; i < n; i++)
        {
            if (ans[i] != -1) continue;

            if (nm == -1 || r[nm] < r[i]) nm = i;
        }

        for (int i = 0; i < n; i++)
        {
            if (ans[i] != -1) continue;

            ld rst = sqrt(pow(abs(x[nm] - x[i]), 2) + pow(abs(y[nm] - y[i]), 2));

            if (r[nm] + r[i] >= rst) {ans[i] = nm + 1; s--;}
        }
    }

    for (int i = 0; i < n; i++) cout << ans[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...