# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
571575 | Cross_Ratio | Circle selection (APIO18_circle_selection) | C++14 | 3096 ms | 18844 KiB |
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 <bits/stdc++.h>
#define int long long
using namespace std;
int X[300005];
int Y[300005];
int R[300005];
int ans[300005];
bool used[300005];
signed main() {
cin.sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int N;
cin >> N;
int i, j;
for(i=0;i<N;i++) cin >> X[i] >> Y[i] >> R[i];
while(true) {
int ma = 0;
int id = -1;
for(i=0;i<N;i++) {
if(!used[i]&&ma < R[i]) {
ma = R[i];
id = i;
}
}
if(id==-1) break;
for(i=0;i<N;i++) {
if(used[i]) continue;
if((X[i]-X[id])*(X[i]-X[id])+(Y[i]-Y[id])*(Y[i]-Y[id])<=(R[i]+R[id])*(R[i]+R[id])) {
used[i] = true;
ans[i] = id;
}
}
}
for(i=0;i<N;i++) cout << ans[i]+1 << ' ';
}
Compilation message (stderr)
# | 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... |