제출 #87150

#제출 시각아이디문제언어결과실행 시간메모리
87150fedoseevtimofey원 고르기 (APIO18_circle_selection)C++14
7 / 100
3033 ms59608 KiB
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef long double ld;

int main() {
    ios_base::sync_with_stdio(false); cin.tie(0); cout.setf(ios::fixed); cout.precision(20);
    #ifdef LOCAL
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
    #endif
    int n;
    cin >> n;
    vector <int> x(n), y(n), r(n);
    for (int i = 0; i < n; ++i) cin >> x[i] >> y[i] >> r[i];
    vector <int> idx(n);
    iota(idx.begin(), idx.end(), 0);
    vector <int> who(n, -1);
    sort(idx.begin(), idx.end(), [&] (int i, int j) {
        if (r[i] != r[j]) return r[i] > r[j];
        return i < j;
    });
    for (int i : idx) {
        if (who[i] != -1) continue;
        who[i] = i + 1;
        for (int j = 0; j < n; ++j) {
            if (who[j] == -1 && (ll)(x[i] - x[j]) * (x[i] - x[j]) + (ll)(y[i] - y[j]) * (y[i] - y[j]) <= (ll)(r[i] + r[j]) * (r[i] + r[j])) {
                who[j] = i + 1;
            }
        }
    }
    for (int i = 0; i < n; ++i) {
        cout << who[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...