Submission #128393

#TimeUsernameProblemLanguageResultExecution timeMemory
128393TadijaSebezTriangles (CEOI18_tri)C++11
0 / 100
3 ms396 KiB
#include "trilib.h" #include <bits/stdc++.h> using namespace std; #define pb push_back vector<int> Hull(vector<int> v) { sort(v.begin(),v.end(),[](int x, int y){ return is_clockwise(1,y,x);}); vector<int> ans; ans.pb(1); for(int i:v) { while(ans.size()>1 && is_clockwise(ans[ans.size()-2],ans.back(),i)) ans.pop_back(); ans.pb(i); } return ans; } int main() { int n=get_n(); vector<int> v[2]; for(int i=3;i<=n;i++) v[is_clockwise(1,2,i)].pb(i); if(v[0].empty() || v[1].empty()) { if(v[0].empty()) v[0]=v[1]; v[0].pb(2); v[0]=Hull(v[0]); give_answer(v[0].size()); return 0; } v[0].pb(2); v[1].pb(2); v[0]=Hull(v[0]); v[1]=Hull(v[1]); for(int i:v[0]) printf("%i ",i);printf("\n"); for(int i:v[1]) printf("%i ",i);printf("\n"); int l0=0,r0=v[0].size()-1,l1=0,r1=v[1].size()-1; if(v[0][1]==2) l0=1,r1--; else l1=1,r0--; while(1) { if(l0+1<r0 && is_clockwise(v[1][r1],v[0][l0],v[0][l0+1])) l0++; else if(r1>l1 && is_clockwise(v[0][l0],v[1][r1-1],v[1][r1])) r1--; else break; } while(1) { if(l1+1<r1 && is_clockwise(v[0][r0],v[1][l1],v[1][l1+1])) l1++; else if(r0>l0 && is_clockwise(v[1][l1],v[0][r0-1],v[0][r0])) r0--; else break; } vector<int> all; for(int i=l0;i<=r0;i++) all.pb(v[0][i]); for(int i=l1;i<=r1;i++) all.pb(v[1][i]); sort(all.begin(),all.end()); int ans=unique(all.begin(),all.end())-all.begin(); give_answer(ans); return 0; }

Compilation message (stderr)

tri.cpp: In function 'int main()':
tri.cpp:34:2: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
  for(int i:v[0]) printf("%i ",i);printf("\n");
  ^~~
tri.cpp:34:34: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
  for(int i:v[0]) printf("%i ",i);printf("\n");
                                  ^~~~~~
tri.cpp:35:2: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
  for(int i:v[1]) printf("%i ",i);printf("\n");
  ^~~
tri.cpp:35:34: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
  for(int i:v[1]) printf("%i ",i);printf("\n");
                                  ^~~~~~
#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...