Submission #225809

#TimeUsernameProblemLanguageResultExecution timeMemory
225809kshitij_sodaniTriangles (CEOI18_tri)C++17
100 / 100
34 ms2716 KiB
#include <iostream> #include <bits/stdc++.h> using namespace std; #include "trilib.h" #define pb push_back #define a first #define b second typedef long long llo; /*bool is_clockwise(int i,int j,int k){ cout<<i<<" "<<j<<" "<<k<<endl; int x; cin>>x; if(x){ return true; } else{ return false; } } int get_n(){ return 6; } void give_answer(int nn){ cout<<nn<<":"<<endl; }*/ int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); int n=get_n(); int vis[n]; for(int i=0;i<n;i++){ vis[i]=1; } vector<int> no; vector<int> no2; for(int i=2;i<n;i++){ if(is_clockwise(1,2,i+1)){ no.pb(i+1); // cout<<i<<endl; } else{ no2.pb(i+1); } } no.pb(2); no2.pb(2); vector<int> hull; stable_sort(no.begin(), no.end(), [&](const int &p, const int &q) { return is_clockwise(1, p, q); }); stable_sort(no2.begin(), no2.end(), [&](const int &p, const int &q) { return !is_clockwise(1, p, q); }); no.insert(no.begin(),1); for(auto jj:no){ while(hull.size()>1 and !is_clockwise(hull[hull.size()-2],hull[hull.size()-1],jj)){ hull.pop_back(); } hull.pb(jj); } vector<int> hull2; /* hull2.pb(1); hull2.pb(2);*/ no2.insert(no2.begin(),1); for(auto jj:no2){ while(hull2.size()>1 and is_clockwise(hull2[hull2.size()-2],hull2[hull2.size()-1],jj)){ hull2.pop_back(); } hull2.pb(jj); } int k,l; vector<int> hull3; for(int i=1;i<hull.size();i++){ hull3.pb(hull[i]); } hull3.pb(1); for(int i=hull2.size()-1;i>=2;i--){ hull3.pb(hull2[i]); } deque<int> fin; fin.pb(2); for(auto jj:hull3){ if(jj==2){ continue; } while(fin.size()>1 and !is_clockwise(fin[fin.size() - 2],fin[fin.size() - 1],jj)){ fin.pop_back(); } fin.push_back(jj); } while(fin.size()>3){ if(!is_clockwise(fin[fin.size() - 1], fin[0], fin[1])){ fin.pop_front(); } else if(!is_clockwise(fin[fin.size() - 2], fin[fin.size() - 1], fin[0])){ fin.pop_back(); } else{ break; } } give_answer(fin.size()); return 0; }

Compilation message (stderr)

tri.cpp: In function 'int main()':
tri.cpp:71:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=1;i<hull.size();i++){
              ~^~~~~~~~~~~~
tri.cpp:30:6: warning: variable 'vis' set but not used [-Wunused-but-set-variable]
  int vis[n];
      ^~~
tri.cpp:69:6: warning: unused variable 'k' [-Wunused-variable]
  int k,l;
      ^
tri.cpp:69:8: warning: unused variable 'l' [-Wunused-variable]
  int k,l;
        ^
#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...