Submission #120773

#TimeUsernameProblemLanguageResultExecution timeMemory
120773_demon_Circle selection (APIO18_circle_selection)C++14
7 / 100
3040 ms74208 KiB
#include <bits/stdc++.h>
using namespace std;
int n;
int ans[100009];
struct xxx{
    long double r,x,y,id;
};
bool operator < (xxx a,xxx b){
    if(a.r==b.r) return a.id>b.id;
    return a.r<b.r;
}
set<xxx> s;
int main(){
    cin>>n;
    for(long double i=0;i<n;i++){
        long double r,x,y;
        cin>>x>>y>>r;
        s.insert({r,x,y,i});
    }
    while(s.size()>0){
        vector<xxx>v;
        v.clear();
        long double r=s.rbegin()->r;
        long double x=s.rbegin()->x;
        long double y=s.rbegin()->y;
        long double id=s.rbegin()->id;
        ans[(int)id]=id+1;
        s.erase({r,x,y,id});
        for(set<xxx>::iterator i=s.begin();i!=s.end();i++){
            long double rr=i->r;
            long double xx=i->x;
            long double yy=i->y;
            long double idd=i->id;
            long double dis=sqrt(pow(abs(xx-x),2)+pow(abs(yy-y),2));
            if(dis<=rr+r){
                v.push_back({rr,xx,yy,idd});
            }
       }
        for(int i=0;i<v.size();i++){
            long double rr=v[i].r;
            long double xx=v[i].x;
            long double yy=v[i].y;
            long double idd=v[i].id;
            s.erase({rr,xx,yy,idd});
            ans[(int)idd]=id+1;
        }
    }
    for(int i=0;i<n;i++)cout<<ans[i]<<" ";
    cout<<endl;
}

Compilation message (stderr)

circle_selection.cpp: In function 'int main()':
circle_selection.cpp:39:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(int i=0;i<v.size();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...