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<iostream>
#include<stdio.h>
#include<vector>
#include<queue>
#include<algorithm>
using namespace std;
typedef long long int lld;
lld sq(lld a){
return a*a;
}
int main(){
int n;
cin>>n;
lld circles[n][3];
bool valid[n];
int cnt=n;
for(int i=0;i<n;i++){valid[i]=true;
cin>>circles[i][0]>>circles[i][1]>>circles[i][2];
}
int arr[n];
while(cnt>0){
int maior=-1;
for(int i=0;i<n;i++){
if(valid[i] && (maior==-1 || circles[maior][2]<circles[i][2]))maior=i;
}
for(int i=0;i<n;i++){
if(valid[i] && sq(circles[i][2]+circles[maior][2])>=sq(circles[i][1]-circles[maior][1])+sq(circles[i][0]-circles[maior][0])){
arr[i]=maior;
valid[i]=false;
cnt--;
}
}
/*for(int i=0;i<n;i++)cout<<sq(circles[i][1]-circles[maior][1])+sq(circles[i][0]-circles[maior][0])<<" ";
cout<<endl;
for(int i=0;i<n;i++)cout<<sq(circles[i][2]+circles[maior][2])<<" ";
cout<<endl;*/
}
for(int i=0;i<n;i++){
cout<<arr[i]+1<<" ";
}cout<<endl;
return 0;
}
# | 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... |