Submission #368145

#TimeUsernameProblemLanguageResultExecution timeMemory
368145YJUCircle selection (APIO18_circle_selection)C++14
7 / 100
3090 ms19748 KiB
//{{{ #include <bits/stdc++.h> using namespace std; //types typedef long long ll; typedef pair<int,int> pii; //input bool SR(int &_x){return scanf("%d",&_x)==1;}bool SR(ll &_x){return scanf("%lld",&_x)==1;} bool SR(double &_x){return scanf("%lf",&_x)==1;}bool SR(char *_s){return scanf("%s",_s)==1;} bool RI(){return true;} template<typename I,typename... T>bool RI(I &_x,T&... _tail){return SR(_x) && RI(_tail...);} //output void SP(const int _x){printf("%d",_x);}void SP(const ll _x){printf("%lld",_x);} void SP(const double _x){printf("%.16lf",_x);}void SP(const char *s){printf("%s",s);} void PL(){puts("");} template<typename I,typename... T>void PL(const I _x,const T... _tail) {SP(_x);if(sizeof...(_tail)) putchar(' ');PL(_tail...);} //macro #define SZ(x) ((int)(x).size()) #define ALL(x) (x).begin(),(x).end() #define REP(i,n) for(int i=0;i<int(n);i++) #define REP1(i,a,b) for(int i=(a);i<=int(b);i++) #define PER1(i,a,b) for(int i=(a);i>=int(b);i--) #define pb push_back #define mkp make_pair #define F first #define S second //debug #ifdef darry140 template<typename A,typename B> ostream& operator <<(ostream&_s, const pair<A,B> &_p){return _s<<"("<<_p.F<<","<<_p.S<<")";} template<typename It> ostream& _OUTC(ostream &_s,It _b,It _e)//container { _s<<"{"; for(auto _it=_b;_it!=_e;_it++) _s<<(_it==_b?"":" ")<<*_it; _s<<"}"; return _s; } template<typename A,typename B> ostream& operator <<(ostream&_s, const map<A,B> &_c){return _OUTC(_s,ALL(_c));} template<typename T> ostream& operator <<(ostream&_s, const set<T> &_c){return _OUTC(_s,ALL(_c));} template<typename T> ostream& operator <<(ostream&_s, const vector<T> &_c){return _OUTC(_s,ALL(_c));} template<typename I> void _DOING(const char *_s,I&& _x){cerr<<_s<<"="<<_x<<endl;}//without ',' template<typename I,typename... T> void _DOING(const char *_s,I&& _x,T&&... _tail)//with ',' { int _c=0; static const char _bra[]="({["; static const char _ket[]=")}]"; while(*_s!=',' || _c!=0)//eg. mkp(a,b) { if(strchr(_bra,*_s)) _c++; if(strchr(_ket,*_s)) _c--; cerr<<*_s++; } cerr<<"="<<_x<<", "; _DOING(_s+1,_tail...); } #define debug(...) do{\ fprintf(stderr,"%s:%d - ",__PRETTY_FUNCTION__,__LINE__);\ _DOING(#__VA_ARGS__,__VA_ARGS__);\ }while(0) #else #define debug(...) #endif //}}} const int maxn=5e5+5; ll x[maxn],y[maxn],r[maxn]; int n; void read() { scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%lld %lld %lld",&x[i],&y[i],&r[i]); } bool inter(int i,int j) { ll dx=x[i]-x[j],dy=y[i]-y[j]; ll dd=dx*dx+dy*dy,rr=(r[i]+r[j])*(r[i]+r[j]); return dd<=rr; } void build(){} int ans[maxn]; void sol() { vector<int> cir(n);iota(ALL(cir),1); while(SZ(cir)) { int i=cir[0]; for(int j:cir) if(tie(r[j],i)>tie(r[i],j)) i=j; vector<int> nxt; for(int j:cir) { if(!inter(i,j)) nxt.pb(j); else ans[j]=i; } nxt.swap(cir); } REP1(i,1,n) printf("%d%c",ans[i]," \n"[i==n]); } int main() { read(); build(); sol(); return 0; }

Compilation message (stderr)

circle_selection.cpp: In function 'void read()':
circle_selection.cpp:76:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   76 |     scanf("%d",&n);
      |     ~~~~~^~~~~~~~~
circle_selection.cpp:77:32: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   77 |     for(int i=1;i<=n;i++) scanf("%lld %lld %lld",&x[i],&y[i],&r[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...