제출 #1359315

#제출 시각아이디문제언어결과실행 시간메모리
1359315Faisal_Saqib원 고르기 (APIO18_circle_selection)C++17
0 / 100
3095 ms8536 KiB
#include <bits/stdc++.h>
using namespace std;
const int N=3e5+10;
int x[N],y[N],r[N],who[N];
long long intersect(int i,int j)
{
	return 1ll*(x[i]-x[j])*(x[i]-x[j])+1ll*(y[i]-y[j])*(y[i]-y[j])-(1ll*(r[i]+r[j])*(r[i]+r[j]));
}
int main()
{
	ios::sync_with_stdio(0);
	cout.tie(0);
	cin.tie(0);
	int n;
	cin>>n;
	vector<int> ord;
	for(int i=0;i<n;i++)
	{
		cin>>x[i]>>y[i]>>r[i];
		ord.push_back(i);
	}
	sort(begin(ord),end(ord),[&](int i,int j){return make_pair(-r[i],i)<make_pair(-r[j],j);});
	vector<int> rem;
	for(auto i:ord)
	{
		for(auto j:rem)
		{
			if(intersect(j,i)<=0)
			{
				who[i]=j;
				break;
			}
		}
		if(!who[i])who[i]=i,rem.push_back(i);
	}
	for(int i=0;i<n;i++)cout<<who[i]+1<<' ';
	cout<<endl;
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…