이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include<bits/stdc++.h>
#define endl '\n'
using namespace std;
int n;
pair<long long, int> pr[300005];
long long x[300005], y[300005], r[300005];
int prem[300005];
void print_ans()
{
cout<<prem[1];
for(int j=2; j<=n; j++) cout<<" "<<prem[j];
cout<<endl;
}
void solve1()
{
for(int i1=1; i1<=n; i1++)
{
int i=pr[i1].second;
if(prem[i]) continue;
prem[i]=i;
for(int j1=i1+1; j1<=n; j1++)
{
int j=pr[j1].second;
if(prem[j]) continue;
if((r[i]+r[j])*(r[i]+r[j])<(x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j])) continue;
prem[j]=i;
}
}
print_ans();
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>n;
for(int i=1; i<=n; i++) {cin>>x[i]>>y[i]>>r[i]; pr[i]={-r[i], i};}
sort(pr+1, pr+n+1);
if(n<=5000) solve1();
return 0;
}
/**
11
9 9 2
13 2 1
11 8 2
3 3 2
3 12 1
12 14 1
9 8 5
2 8 2
5 2 1
14 4 2
14 14 1
*/
| # | 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... |