Submission #124031

#TimeUsernameProblemLanguageResultExecution timeMemory
124031HassenAissaCircle selection (APIO18_circle_selection)C++14
0 / 100
3052 ms82340 KiB
#include <bits/stdc++.h> #define int long long unsigned using namespace std; int32_t main() { map<int,set<pair<int,int> >,greater<int> >circles; map<pair<pair<int,int>,int>,int> memo; vector<pair<pair<int,int>,int> > tab; vector<int> res; int n; int x,y,z; scanf("%d",&n); res.resize(n); for(int i=0; i<n; i++) { scanf("%d%d%d",&x,&y,&z); circles[z].insert(make_pair(x,y)); memo[make_pair(make_pair(x,y),z)]=i; tab.push_back(make_pair(make_pair(x,y),z)); res[i]=i+1; } map<int,set<pair<int,int> >,greater<int> >::iterator it; int done=0; while(done!=n) { bool test=0; int a,b,c; for(it=circles.begin(); it!=circles.end(); ++it) { int r=it->first; if((it->second).size()!=0 && test==0) { test=1; done++; c=it->first; a=((it->second).begin())->first; b=((it->second).begin())->second; (it->second).erase((it->second).begin()); } set<pair<int,int> >::iterator posi; for(posi=(it->second).begin(); posi!=(it->second).end(); ++posi) { int q=posi->first; int p=posi->second; if((c+r)*(c+r)>=(q-a)*(q-a)+(p-b)*(p-b)) { done++; res[memo[make_pair(make_pair(q,p),r)]]=memo[make_pair(make_pair(a,b),c)]+1; (it->second).erase(posi); } } } } for(int i=0; i<n; i++) { printf("%d ",res[i]); } }

Compilation message (stderr)

circle_selection.cpp: In function 'int32_t main()':
circle_selection.cpp:14:18: warning: format '%d' expects argument of type 'int*', but argument 2 has type 'long long unsigned int*' [-Wformat=]
     scanf("%d",&n);
                ~~^
circle_selection.cpp:18:32: warning: format '%d' expects argument of type 'int*', but argument 2 has type 'long long unsigned int*' [-Wformat=]
         scanf("%d%d%d",&x,&y,&z);
                        ~~      ^
circle_selection.cpp:18:32: warning: format '%d' expects argument of type 'int*', but argument 3 has type 'long long unsigned int*' [-Wformat=]
circle_selection.cpp:18:32: warning: format '%d' expects argument of type 'int*', but argument 4 has type 'long long unsigned int*' [-Wformat=]
circle_selection.cpp:58:28: warning: format '%d' expects argument of type 'int', but argument 2 has type '__gnu_cxx::__alloc_traits<std::allocator<long long unsigned int> >::value_type {aka long long unsigned int}' [-Wformat=]
         printf("%d ",res[i]);
                            ^
circle_selection.cpp:14:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d",&n);
     ~~~~~^~~~~~~~~
circle_selection.cpp:18:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d%d%d",&x,&y,&z);
         ~~~~~^~~~~~~~~~~~~~~~~~~
circle_selection.cpp:47:22: warning: 'c' may be used uninitialized in this function [-Wmaybe-uninitialized]
                 if((c+r)*(c+r)>=(q-a)*(q-a)+(p-b)*(p-b))
                    ~~^~~
#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...