Language: C++

#include <vector>
#include <algorithm>
#define x real() 
#define y imag()
#define px first
#define py second 
using namespace std;
typedef complex<double> vectol;
typedef pair <int,int> P;
P G[100001];
vector <P> stc;

int ccw(vectol a,vectol b,vectol c) {
  vectol ab=b-a, ac =c-a;
  vectol d =ac*conj(ab); 
  if(d.y > 0) return false;
  if(d.y < 0) return true;
  ab = ab*conj(ab);
  if(ab.x<d.x) return true;
  if(0>d.x) return true;
  return false;
}

int main() {
  int n;
  cin >> n;
  for(int i=0;i<n;i++)cin >> G[i].px >> G[i].py;
  sort(G,G+n);

  stc.push_back(G[0]);
  stc.push_back(G[1]);
  for(int i=2;i<n;i++) {
    vectol av = vectol(stc[stc.size()-2].px,stc[stc.size()-2].py);
    vectol bv = vectol(stc[stc.size()-1].px,stc[stc.size()-1].py);
    vectol cv = vectol(G[i].px,G[i].py);
    if(ccw(av,bv,cv) ==false && stc.size() !=2)stc.pop_back(),i--;
    else  stc.push_back(G[i]);
  }
  
  int size = stc.size();
  for(int i=n-2;i>0;i--) {
    vectol av = vectol(stc[stc.size()-2].px,stc[stc.size()-2].py);
    vectol bv = vectol(stc[stc.size()-1].px,stc[stc.size()-1].py);
    vectol cv = vectol(G[i].px,G[i].py);
    if(ccw(av,bv,cv) ==false && size < stc.size())stc.pop_back(),i--;
    else stc.push_back(G[i]);
  }
   cout <<stc.size()<<endl;
   cout << stc[0].px <<" "<<stc[0].py<<endl;
   for(int i=stc.size()-1;i>0;i--) cout << stc[i].px <<" "<<stc[i].py<<endl;
  return 0;
}

Compiler output:
a.cc:8:9: error: 'complex' does not name a type
    8 | typedef complex<double> vectol;
      |         ^~~~~~~
a.cc:13:9: error: 'vectol' was not declared in this scope
   13 | int ccw(vectol a,vectol b,vectol c) {
      |         ^~~~~~
a.cc:13:18: error: 'vectol' was not declared in this scope
   13 | int ccw(vectol a,vectol b,vectol c) {
      |                  ^~~~~~
a.cc:13:27: error: 'vectol' was not declared in this scope
   13 | int ccw(vectol a,vectol b,vectol c) {
      |                           ^~~~~~
a.cc:13:35: error: expression list treated as compound expression in initializer [-fpermissive]
   13 | int ccw(vectol a,vectol b,vectol c) {
      |                                   ^
a.cc: In function 'int main()':
a.cc:26:3: error: 'cin' was not declared in this scope
   26 |   cin >> n;
      |   ^~~
a.cc:3:1: note: 'std::cin' is defined in header '<iostream>'; this is probably fixable by adding '#include <iostream>'
    2 | #include <algorithm>
  +++ |+#include <iostream>
    3 | #define x real()
a.cc:33:5: error: 'vectol' was not declared in this scope
   33 |     vectol av = vectol(stc[stc.size()-2].px,stc[stc.size()-2].py);
      |     ^~~~~~
a.cc:34:11: error: expected ';' before 'bv'
   34 |     vectol bv = vectol(stc[stc.size()-1].px,stc[stc.size()-1].py);
      |           ^~~
      |           ;
a.cc:35:11: error: expected ';' before 'cv'
   35 |     vectol cv = vectol(G[i].px,G[i].py);
      |           ^~~
      |           ;
a.cc:36:12: error: 'av' was not declared in this scope
   36 |     if(ccw(av,bv,cv) ==false && stc.size() !=2)stc.pop_back(),i--;
      |            ^~
a.cc:36:15: error: 'bv' was not declared in this scope
   36 |     if(ccw(av,bv,cv) ==false && stc.size() !=2)stc.pop_back(),i--;
      |               ^~
a.cc:36:18: error: 'cv' was not declared in this scope
   36 |     if(ccw(av,bv,cv) ==false && stc.size() !=2)stc.pop_back(),i--;
      |                  ^~
a.cc:36:20: error: 'ccw' cannot be used as a function
   36 |     if(ccw(av,bv,cv) ==false && stc.size() !=2)stc.pop_back(),i--;
      |                    ^
a.cc:42:5: error: 'vectol' was not declared in this scope
   42 |     vectol av = vectol(stc[stc.size()-2].px,stc[stc.size()-2].py);
      |     ^~~~~~
a.cc:43:11: error: expected ';' before 'bv'
   43 |     vectol bv = vectol(stc[stc.size()-1].px,stc[stc.size()-1].py);
      |           ^~~
      |           ;
a.cc:44:11: error: expected ';' before 'cv'
   44 |     vectol cv = vectol(G[i].px,G[i].py);
      |           ^~~
      |           ;
a.cc:45:12: error: 'av' was not declared in this scope
   45 |     if(ccw(av,bv,cv) ==false && size < stc.size())stc.pop_back(),i--;
      |            ^~
a.cc:45:15: error: 'bv' was not declared in this scope
   45 |     if(ccw(av,bv,cv) ==false && size < stc.size())stc.pop_back(),i--;
      |               ^~
a.cc:45:18: error: 'cv' was not declared in this scope
   45 |     if(ccw(av,bv,cv) ==false && size < stc.size())stc.pop_back(),i--;
      |                  ^~
a.cc:45:20: error: 'ccw' cannot be used as a function
   45 |     if(ccw(av,bv,cv) ==false && size < stc.size())stc.pop_back(),i--;
      |                    ^
a.cc:48:4: error: 'cout' was not declared in this scope
   48 |    cout <<stc.size()<<endl;
      |    ^~~~
a.cc:48:4: note: 'std::cout' is defined in header '<iostream>'; this is probably fixable by adding '#include <iostream>'
a.cc:48:23: error: 'endl' was not declared in this scope
   48 |    cout <<stc.size()<<endl;
      |                       ^~~~
a.cc:3:1: note: 'std::endl' is defined in header '<ostream>'; this is probably fixable by adding '#include <ostream>'
    2 | #include <algorithm>
  +++ |+#include <ostream>
    3 | #define x real()