Submission #164724

#TimeUsernameProblemLanguageResultExecution timeMemory
164724Rouge_HugoCircle selection (APIO18_circle_selection)C++14
7 / 100
3045 ms1912 KiB
#include <bits/stdc++.h> #define ll long long #define fast ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); using namespace std; int n; const int N=5007; int vis[N],r[N];pair<int,int>a[N]; set<pair<int,int>>s; bool check(int c1,int c2) { long long x=a[c1].first-a[c2].first;x*=x; long long y=a[c1].second-a[c2].second;y*=y; ll rr=r[c1]+r[c2];rr*=rr; if (x+y<=rr)return 1; return false; } void cl(int ind) { for(int i=0;i<n;i++) { if (vis[i])continue; if (check(ind,i)) { s.erase({r[i],-i}); vis[i]=ind+1; } } } int main() { fast cin>>n; for(int i=0;i<n;i++) { int x,y,z; cin>>x>>y>>z; a[i].first=x;a[i].second=y; r[i]=z; } for(int i=0;i<n;i++) { s.insert({r[i],-i}); } while (!s.empty()) { pair<int,int>x=*s.rbegin(); cl(-x.second); } for(int i=0;i<n;i++)cout<<vis[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...