#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
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]);
}
}
}
int 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 time |
Memory |
Grader output |
1 |
Correct |
2 ms |
256 KB |
Output is correct |
2 |
Incorrect |
2 ms |
256 KB |
Output isn't correct |
3 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Execution timed out |
3088 ms |
749412 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
2 ms |
252 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Execution timed out |
3133 ms |
776996 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
256 KB |
Output is correct |
2 |
Incorrect |
2 ms |
256 KB |
Output isn't correct |
3 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
256 KB |
Output is correct |
2 |
Incorrect |
2 ms |
256 KB |
Output isn't correct |
3 |
Halted |
0 ms |
0 KB |
- |