제출 #1172693

#제출 시각아이디문제언어결과실행 시간메모리
1172693stdfloat원 고르기 (APIO18_circle_selection)C++20
0 / 100
102 ms8340 KiB
#include <bits/stdc++.h>
using namespace std;

using ll = long long;

int main() {
	ios::sync_with_stdio(false); cin.tie(nullptr);

	int n;
	cin >> n;

	vector<int> x(n + 1), y(n + 1), r(n + 1);
	for (int i = 1; i <= n; i++)
		cin >> x[i] >> y[i] >> r[i];

	vector<int> ord(n + 1);
	iota(ord.begin() + 1, ord.end(), 1);
	sort(ord.begin() + 1, ord.end(), [&](int x, int y) {
		return (r[x] > r[y] || (r[x] == r[y] && x < y));
	});

	vector<int> ans(n + 1);
	for (auto i : ord) {
		if (ans[i]) continue;

		for (int j = 1; j <= n; j++)
			if (!ans[j] && (x[i] - x[j]) * (x[i] - x[j]) + (y[i] - y[j]) * (y[i] - y[j]) <= (r[i] + r[j]) * (r[i] + r[j])) ans[j] = i;
	}

	for (int i = 1; i <= n; i++)
		cout << ans[i] << ' ';
}
#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...