제출 #71948

#제출 시각아이디문제언어결과실행 시간메모리
71948KLPP원 고르기 (APIO18_circle_selection)C++14
7 / 100
3061 ms60508 KiB
#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 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...