Submission #698876

#TimeUsernameProblemLanguageResultExecution timeMemory
698876DodoCircle selection (APIO18_circle_selection)C++14
7 / 100
3099 ms15476 KiB
#include "bits/stdc++.h" #define ll long long #define pb push_back #define endl '\n' using namespace std; ll dis(pair<ll,ll>p1,pair<ll,ll>p2) { ll a=(p1.first-p2.first) , b=(p1.second-p2.second); return (a*a)+(b*b); } bool sorting (pair<ll,ll>a,pair<ll,ll>b) { if(a.first!=b.first) return (a.first>b.first); return (a.second<b.second); } signed main () { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); ll n; cin>>n; vector<pair<ll,ll>>v,c; for(int i=0;i<n;i++) { ll x,y,r; cin>>x>>y>>r; c.pb({x,y}); v.pb({r,i}); } sort(v.begin(),v.end(),sorting); ll ans[n]={}; for(int i=0;i<n;i++) { if(ans[v[i].second])continue; for(int j=i;j<n;j++) { if(ans[v[j].second])continue; if(dis(c[v[i].second],c[v[j].second])<=((v[i].first+v[j].first)*(v[i].first+v[j].first)) ) ans[v[j].second]=v[i].second+1; } } for(int i=0;i<n;i++) cout<<ans[i]<<' '; return 0; } /* 11 9 9 2 13 2 1 11 8 2 3 3 2 3 12 1 12 14 1 9 8 5 2 8 2 5 2 1 14 4 2 14 14 1 */
#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...