Submission #123974

#TimeUsernameProblemLanguageResultExecution timeMemory
123974RayanLabidiCircle selection (APIO18_circle_selection)C++14
7 / 100
3096 ms1048580 KiB
#include <bits/stdc++.h> #define rp(_s,_i,_n) for(int _s=_i;_s<_n;_s++) #define sz(_itt) (int)_itt.size() #define mp(__a,__b) make_pair(__a,__b) #define pb(_p) push_back(_p) #define fastio ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define mod 1000000007 #define int long long using namespace std; typedef long long ll; struct cir{ int rad,ind,x,y; }; bool acomp(cir a,cir b){ if(a.rad==b.rad)return a.ind<b.ind; return a.rad>b.rad; } vector<cir> c;//circles vector<vector<cir> >con;//circles connected to circle con[i] int n;//numb of circles vector<bool>del; vector<int> killer; ll dist(int x,int y){ return (c[x].x-c[y].x)*(c[x].x-c[y].x)+(c[x].y-c[y].y)*(c[x].y-c[y].y); } void connecting(int u){ rp(i,0,n){ if(i==u)continue; ll temp=(c[i].rad+c[u].rad)*(c[i].rad+c[u].rad)*1LL; if(dist(u,i)<=temp){ con[u].push_back(c[i]); } } } int32_t main() { fastio cin>>n; c.resize(n),con.resize(n),del.resize(n),killer.resize(n); rp(i,0,n){ cin>>c[i].x>>c[i].y>>c[i].rad; c[i].ind=i; } sort(c.begin(),c.end(),acomp); rp(i,0,n){ connecting(i); } rp(i,0,n){ if(del[c[i].ind]==1)continue; del[c[i].ind]=1; killer[c[i].ind]=c[i].ind; for(auto x:con[i]){ if(del[x.ind]==1)continue; killer[x.ind]=c[i].ind; del[x.ind]=1; } } rp(i,0,n){ cout <<killer[i]+1<<" "; } }
#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...