Submission #978718

#TimeUsernameProblemLanguageResultExecution timeMemory
978718De3b0oCircle selection (APIO18_circle_selection)C++14
12 / 100
1471 ms77464 KiB
#include<bits/stdc++.h> #define ll long long #define F first #define S second #define in insert #define pb push_back #define ppb pop_back() #define d3 ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define cans cout << ans << "\n"; #define yes cout << "Yes" << "\n"; #define no cout << "No" << "\n"; #define pll pair<ll,ll> #define lin cout << "\n"; #define sqr 340 #define mod 1000000007 #define mid ((l+r)/2) #define lc (2*n) #define rc (2*n+1) using namespace std; ll fp(ll x , ll y) { if(y==0) return 1; ll z = fp(x,y/2); if(y&1) return z*z*x; else return z*z; } int sqrot(ll x) { int l = 0 , r = INT_MAX; while(l<=r) { if(mid*mid>=x) r=mid-1; else l=mid+1; } return r+1; } ll cel(ll x , ll y) { return x/y + bool(x%y); } string tb(ll x) { string s = ""; while(x>0) { if(x&1) s+='1'; else s+='0'; x/=2; } while(s.size()<60) s+='0'; return s; } ll fb(string s) { ll x = 0; ll c = 1; for(int8_t i = 0 ; 60>i ; i++) { if(s[i]=='1') x+=c; c*=2; } return x; } ll x[300009] , y[300009] , r[300009] , ans[300009]; bool vis[300009]; int main() { ll n; cin >> n; set<pll> s; set<pll> s1; set<pll> s2; for(int i = 0 ; n>i ; i++) { cin >> x[i] >> y[i] >> r[i]; s.in({r[i],-i}); s1.in({x[i]-r[i],i}); s2.in({x[i]+r[i],i}); } while(!s.empty()) { auto it = s.end(); it--; ll c = -it->S; vector<ll> v; auto it1 = s1.find({x[c]-r[c],c}); while(it1!=s1.end()) { ll e = it1->S; if(x[e]-r[e]>x[c]+r[c]) break; v.pb(e); it1++; } auto it2 = s2.find({x[c]+r[c],c}); while(it2!=s2.begin()) { it2--; ll e = it2->S; if(x[e]+r[e]<x[c]-r[c]) break; v.pb(e); } for(auto it3 : v) { if(vis[it3]) continue; vis[it3]=1; ans[it3]=c+1; s1.erase(s1.find({x[it3]-r[it3],it3})); s2.erase(s2.find({x[it3]+r[it3],it3})); s.erase(s.find({r[it3],-it3})); } } for(int i = 0 ; n>i ; 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...