Submission #135010

#TimeUsernameProblemLanguageResultExecution timeMemory
135010LawlietCircle selection (APIO18_circle_selection)C++14
12 / 100
1407 ms59884 KiB
#include <bits/stdc++.h> #define MAX 300010 #define R first.first #define I first.second #define X second.first #define Y second.second using namespace std; typedef long long int lli; typedef pair<lli,lli> pii; typedef pair<pii,pii> circle; int n; int n1, n2, n3; int x[MAX]; int r[MAX]; int removed[MAX]; vector<circle> v; set<pii> points; set<pii>::iterator it; int main() { scanf("%d",&n); memset(removed , -1 , sizeof(removed)); for(int g = 1 ; g <= n ; g++) { scanf("%d %d %d",&n1,&n2,&n3); circle k; k = {{-n3 , g} , {n1 , n2}}; points.insert({n1 - n3 , g}); points.insert({n1 + n3 , g}); x[g] = n1; r[g] = n3; v.push_back( k ); } sort(v.begin() , v.end()); for(int g = 0 ; g < n ; g++) { if(removed[ v[g].I ] != -1) continue; it = points.lower_bound(make_pair(x[v[g].I] - r[v[g].I] , -1)); while(!points.empty()) { if(it == points.end()) break; if(x[v[g].I] + r[v[g].I] < it->first) break; int cur = it->second; points.erase({x[cur] - r[cur] , cur}); points.erase({x[cur] + r[cur] , cur}); removed[cur] = v[g].I; it = points.lower_bound(make_pair(x[v[g].I] - r[v[g].I] , -1)); } } for(int g = 1 ; g <= n ; g++) printf("%d ",removed[g]); }

Compilation message (stderr)

circle_selection.cpp: In function 'int main()':
circle_selection.cpp:29:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d",&n);
  ~~~~~^~~~~~~~~
circle_selection.cpp:35:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d %d %d",&n1,&n2,&n3);
   ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
#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...