제출 #1043433

#제출 시각아이디문제언어결과실행 시간메모리
1043433vjudge1원 고르기 (APIO18_circle_selection)C++17
7 / 100
165 ms7508 KiB
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;

const ll N = 3e5 + 10;
ll n, a[N][3], par[N];

ll dist(ll a, ll b, ll x, ll y){
    return ((x - a) * (x - a) + (y - b) * (y - b));
}

int main(){
    cin >> n;
    for (ll i = 1; i <= n; i ++)
        for (ll j = 0; j < 3; j ++)
            cin >> a[i][j];

    if (n <= 5000){
        while (1){
            ll mx = -1;
            for (ll i = 1; i <= n; i ++)
                if (!par[i] and (mx == -1 or a[i][2] > a[mx][2]))
                    mx = i;

            if (mx == -1) break;

            for (ll i = 1; i <= n; i ++)
                if (!par[i] and dist(a[i][0], a[i][1], a[mx][0], a[mx][1]) <= (a[i][2] + a[mx][2]) * (a[i][2] + a[mx][2]))
                    par[i] = mx;
        }

        for (ll i = 1; i <= n; i ++)
            cout << par[i] << " ";
        cout << endl;
    }
}
#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...