이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
#define lli long long int
#define debug(a) cout << #a <<  " = " << a << endl
#define debugsl(a) cout << #a << " = " << a << ", "
#define rep(i,a,b) for(int i = (a); i <= (b); i++)
#define repa(i,a,b) for(int i = (a); i >= (b); i--)
#define pll pair<lli,lli> 
#define MAX 5000
//para el vector de orden
#define id second
struct x {
    lli x;
    lli y;
    lli r;
};
lli n;
lli res[MAX+2],vis[MAX+2];
x circulo[MAX+2];
vector<pll> orden;
int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cin >> n;
    rep(i,1,n) {
        cin >> circulo[i].x >> circulo[i].y >> circulo[i].r;
        orden.push_back({-circulo[i].r, i});
    }
    sort(orden.begin(), orden.end());
    for (auto yo : orden) {
        for(auto otro : orden) {
            if (vis[otro.id]) continue;
            if (otro.id == yo.id) {
                res[yo.id] = yo.id;
                break;
            }
            lli a = circulo[yo.id].x - circulo[otro.id].x;
            lli b = circulo[yo.id].y - circulo[otro.id].y;
            a *= a;
            b *= b;
            lli c = circulo[yo.id].r + circulo[otro.id].r;
            c *= c;
            if (c >= (a+b)) {
                res[yo.id] = otro.id;
                vis[yo.id] = 1;
                break;
            } 
        }
    }
    rep(i,1,n) cout << res[i] << ' ';
    return 0;
}
| # | 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... |