Submission #698703

#TimeUsernameProblemLanguageResultExecution timeMemory
698703vjudge1Circle selection (APIO18_circle_selection)C++17
7 / 100
3059 ms11988 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace std; using namespace __gnu_pbds; #define int long long #define endl "\n" int mod=1e9+7; const int N=1e5+5; template<class x> using ordered_multiset = tree<x, null_type,less_equal<x>, rb_tree_tag,tree_order_statistics_node_update>; signed main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); //freopen(".in", "r", stdin); freopen(".out", "w", stdout); int n; cin>>n; pair<int,pair<pair<int,int >,int> > v[n]; for (int i=0;i<n;i++) { cin>>v[i].second.first.first>>v[i].second.first.second>>v[i].first; v[i].first*=-1; v[i].second.second=i; } sort(v,v+n); int ans[n]; for (int i=0;i<n;i++) ans[i]=-1; for (int i=0;i<n;i++) { for (int j=i+1;j<n;j++) { int indx1=v[i].second.second,indx2=v[j].second.second; int r1=v[i].first,r2=v[j].first; int x1=v[i].second.first.first,x2=v[j].second.first.first; int y1=v[i].second.first.second,y2=v[j].second.first.second; if (ans[indx1]!=-1 || ans[indx2]!=-1) continue; int dfx=x1-x2,dfy=y1-y2; dfx*=dfx; dfy*=dfy; int dfr=r1+r2; dfr*=dfr; if (dfr>=dfx+dfy) ans[indx2]=indx1+1; } } for (int i=0;i<n;i++) { if (ans[i]==-1) ans[i]=i+1; 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...