이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#define int unsigned long long
using namespace std;
int32_t main()
{
    map<int,set<pair<int,int> >,greater<int> >circles;
    map<pair<pair<int,int>,int>,int> memo;
    vector<pair<pair<int,int>,int> > tab;
    vector<int> res;
    int n;
    int x,y,z;
    scanf("%llu",&n);
    res.resize(n);
    for(int i=0; i<n; i++)
    {
        scanf("%llu%llu%llu",&x,&y,&z);
        circles[z].insert(make_pair(x,y));
        memo[make_pair(make_pair(x,y),z)]=i;
        tab.push_back(make_pair(make_pair(x,y),z));
        res[i]=i+1;
    }
    map<int,set<pair<int,int> >,greater<int> >::iterator it;
    int done=0;
    while(done<=n)
    {
        bool test=0;
        int a,b,c;
        it=circles.begin();
        while((it->second).size()==0)
        {
            it++;
        }
        c=it->first;
        a=((it->second).begin())->first;
        b=((it->second).begin())->second;
        (it->second).erase((it->second).begin());
        done++;
        for(it=circles.begin(); it!=circles.end(); ++it)
        {
            int r=it->first;
            set<pair<int,int> >::iterator posi;
            for(posi=(it->second).begin(); posi!=(it->second).end(); ++posi)
            {
                int q=posi->first;
                int p=posi->second;
                if((c+r)*(c+r)>=(q-a)*(q-a)+(p-b)*(p-b))
                {
                    done++;
                    res[memo[make_pair(make_pair(q,p),r)]]=memo[make_pair(make_pair(a,b),c)]+1;
                    (it->second).erase(posi);
                }
            }
        }
    }
    for(int i=0; i<n; i++)
    {
        printf("%llu ",res[i]);
    }
    return 0;
}
컴파일 시 표준 에러 (stderr) 메시지
circle_selection.cpp: In function 'int32_t main()':
circle_selection.cpp:28:14: warning: unused variable 'test' [-Wunused-variable]
         bool test=0;
              ^~~~
circle_selection.cpp:14:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%llu",&n);
     ~~~~~^~~~~~~~~~~
circle_selection.cpp:18:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%llu%llu%llu",&x,&y,&z);
         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~| # | 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... |