Submission #54085

#TimeUsernameProblemLanguageResultExecution timeMemory
54085Bodo171원 고르기 (APIO18_circle_selection)C++14
0 / 100
156 ms15068 KiB
#include <iostream> #include <fstream> #include <algorithm> using namespace std; const int nmax=100005; pair<int,int> v[nmax]; long long x[nmax],y[nmax],r[nmax]; int tt[nmax]; int n,i,j; bool ok(int A,int B) { return (1LL*(x[A]-x[B])*(x[A]-x[B])+1LL*(y[A]-y[B])*(y[A]-y[B])<=1LL*(r[A]+r[B])*(r[A]+r[B])); } bool comp(pair<int,int> unu,pair<int,int> doi) { if(unu.first==doi.first) return unu.second<doi.second; return unu.first>doi.first; } int main() { //freopen("data.in","r",stdin); cin>>n; bool zr=1; for(i=1;i<=n;i++) { cin>>x[i]>>y[i]>>r[i]; v[i].first=r[i]; v[i].second=i; if(y[i]!=0) { zr=0; } } if(n<=5000) { sort(v+1,v+n+1,comp); for(i=1;i<=n;i++) if(!tt[v[i].second]) { tt[v[i].second]=v[i].second; for(j=i+1;j<=n;j++) { if(ok(v[i].second,v[j].second)) tt[v[j].second]=v[i].second; } } for(i=1;i<=n;i++) cout<<tt[i]<<' '; return 0; } if(zr) { return 0; } return 0; }
#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...