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>
using namespace std;
struct circle{
//radius,x,y,index
int a[4];
};
bool compr(circle p,circle q){
if(p.a[0]==q.a[0])return p.a[3]<q.a[3];
return p.a[0]>q.a[0];
}
int main(){
int n;cin>>n;
circle c[n];
int eli[n]={0};
for(int i=0;i<n;i++){
cin>>c[i].a[1]>>c[i].a[2]>>c[i].a[0];
c[i].a[3]=i+1;
eli[i]=0;
}
sort(c,c+n,compr);
for(int i=0;i<n;i++){
if(eli[c[i].a[3]-1])continue;
eli[c[i].a[3]-1]=c[i].a[3];
for(int j=i+1;j<n;j++){
if(eli[c[j].a[3]-1])continue;
long long dx=c[i].a[1]-c[j].a[1];
long long dy=c[i].a[2]-c[j].a[2];
long long dr=c[i].a[0]+c[j].a[0];
if(dx*dx+dy*dy<=dr*dr){eli[c[j].a[3]-1]=c[i].a[3];}
}
}
for(int i:eli)cout<<i<<" ";
}
# | 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... |