This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#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... |