Submission #569938

#TimeUsernameProblemLanguageResultExecution timeMemory
5699382017487원 고르기 (APIO18_circle_selection)C++14
7 / 100
3091 ms14960 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...