Language: C++

#include<iostream>
#include<vector>
#include<iomanip>
#include<algorithm>
using namespace std; int DIGITS = 14; int CLOCKWISE = -1;
struct Point { long double px, py; }; struct Polygon { vector<Point>p; };
Point Minus(Point a, Point b) { Point G; G.px = a.px - b.px; G.py = a.py - b.py; return G; }
long double dot(const Point& a, const Point& b) { return a.px * b.px + a.py * b.py; }
long double crs(const Point& a, const Point& b) { return a.px * b.py - a.py * b.px; }
long double norm(Point a) { return a.px*a.px + a.py*a.py; }
int ccw(Point p0, Point p1, Point p2) {
	Point a = Minus(p1, p0), b = Minus(p2, p0);
	if (crs(a, b) > 1e-10) return 1;
	if (crs(a, b) < -1e-10) return -1;
	if (dot(a, b) < -1e-10) return 2;
	if (norm(a) < norm(b)) return -2;
	return 0;
}
vector<Point> solve(Polygon X) {
	vector<Point>P = X.p, u, l;
	int M = P.size();
	if (M < 3) { return P; }
	sort(P.begin(), P.end());
	l.push_back(P[0]); l.push_back(P[1]);
	u.push_back(P[P.size() - 2]); u.push_back(P[P.size() - 1]);
	for (int i = 2; i < P.size(); i++) {
		for (int j = u.size(); j >= 2; j--) {
			if (ccw(u[j - 2], u[j - 1], P[i]) == CLOCKWISE) { break; }
			u.pop_back();
		}
		u.push_back(P[i]);
	}
	for (int i = P.size() - 3; i >= 0; i--) {
		for (int j = l.size(); j >= 2; j--) {
			if (ccw(l[j - 2], l[j - 1], P[i]) == CLOCKWISE) { break; }
			u.pop_back();
		}
		l.push_back(P[i]);
	}
	reverse(l.begin(), l.end());
	for (int i = u.size() - 2; i >= 1; i--) { l.push_back(u[i]); }
	return l;
}
int main() {
	int N; cin >> N; Point A; Polygon C; vector<Point>D;
	for (int i = 0; i < N; i++) {
		cin >> A.px >> A.py; D.push_back(A);
	}
	C.p = D; vector<Point>E = solve(C);
	cout << E.size() << endl;
	for (int i = 0; i < E.size(); i++) {
		cout << fixed << setprecision(DIGITS) << E[i].px << fixed < setprecision(DIGITS) << E[i].py << endl;
	}
	return 0;
}

Compiler output:
a.cc: In function 'int main()':
a.cc:52:98: error: no match for 'operator<<' (operand types are 'std::_Setprecision' and 'long double')
   52 |                 cout << fixed << setprecision(DIGITS) << E[i].px << fixed < setprecision(DIGITS) << E[i].py << endl;
      |                                                                             ~~~~~~~~~~~~~~~~~~~~ ^~
      |                                                                                         |
      |                                                                                         std::_Setprecision
In file included from /usr/include/c++/14/bits/basic_string.h:47,
                 from /usr/include/c++/14/string:54,
                 from /usr/include/c++/14/bits/locale_classes.h:40,
                 from /usr/include/c++/14/bits/ios_base.h:41,
                 from /usr/include/c++/14/ios:44,
                 from /usr/include/c++/14/ostream:40,
                 from /usr/include/c++/14/iostream:41,
                 from a.cc:1:
/usr/include/c++/14/string_view:763:5: note: candidate: 'template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(basic_ostream<_CharT, _Traits>&, basic_string_view<_CharT, _Traits>)'
  763 |     operator<<(basic_ostream<_CharT, _Traits>& __os,
      |     ^~~~~~~~
/usr/include/c++/14/string_view:763:5: note:   template argument deduction/substitution failed:
a.cc:52:106: note:   'std::_Setprecision' is not derived from 'std::basic_ostream<_CharT, _Traits>'
   52 |                 cout << fixed << setprecision(DIGITS) << E[i].px << fixed < setprecision(DIGITS) << E[i].py << endl;
      |                                                                                                          ^~
/usr/include/c++/14/bits/basic_string.h:4077:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> std::basic_ostream<_CharT, _Traits>& std::operator<<(basic_ostream<_CharT, _Traits>&, const __cxx11::basic_string<_CharT, _Traits, _Allocator>&)'
 4077 |     operator<<(basic_ostream<_CharT, _Traits>& __os,
      |     ^~~~~~~~
/usr/include/c++/14/bits/basic_string.h:4077:5: note:   template argument deduction/substitution failed:
a.cc:52:106: note:   'std::_Setprecision' is not derived from 'std::basic_ostream<_CharT, _Traits>'
   52 |                 cout << fixed << setprecision(DIGITS) << E[i].px << fixed < setprecision(DIGITS) << E[i].py << endl;
      |                                                                                                          ^~
In file included from /usr/include/c++/14/bits/memory_resource.h:38,
                 from /usr/include/c++/14/string:68:
/usr/include/c++/14/cstddef:125:5: note: candidate: 'template<class _IntegerType> constexpr std::__byte_op_t<_IntegerType> std::operator<<(byte, _IntegerType)'
  125 |     operator<<(byte __b, _IntegerType __shift) noexcept
      |     ^~~~~~~~
/usr/include/c++/14/cstddef:125:5: note:   template argument deduction/substitution failed:
a.cc:52:89: note:   cannot convert 'std::setprecision(DIGITS)' (type 'std::_Setprecision') to type 'std::byte'
   52 |                 cout << fixed << setprecision(DIGITS) << E[i].px << fixed < setprecision(DIGITS) << E[i].py << endl;
      |                                                                             ~~~~~~~~~~~~^~~~~~~~
In file included from /usr/include/c++/14/bits/ios_base.h:46:
/usr/include/c++/14/system_error:339:5: note: candidate: 'template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(basic_ostream<_CharT, _Traits>&, const error_code&)'
  339 |     operator<<(basic_ostream<_CharT, _Traits>& __os, const error_code& __e)
      |     ^~~~~~~~
/usr/include/c++/14/system_error:339:5: note:   template argument deduction/substitution failed:
a.cc:52:106: note:   'std::_Setprecision' is not derived from 'std::basic_ostream<_CharT, _Traits>'
   52 |                 cout << fixed << setprecision(DIGITS) << E[i].px << fixed < setprecision(DIGITS) << E[i].py << endl;
      |                                                                                                          ^~
/usr/include/c++/14/ostream:563:5: note: candidate: 'template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(basic_ostream<_CharT, _Traits>&, _CharT)'
  563 |     operator<<(basic_ostream<_CharT, _Traits>& __out, _CharT __c)
      |     ^~~~~~~~
/usr/include/c++/14/ostream:563:5: note:   template argument deduction/substitution failed:
a.cc:52:106: note:   'std::_Setprecision' is not derived from 'std::basic_ostream<_CharT, _Traits>'
   52 |                 cout << fixed << setprecision(DIGITS) << E[i].px << fixed < setprecision(DIGITS) << E[i].py << endl;
      |                                                                                                          ^~
/usr/include/c++/14/ostream:573:5: note: candidate: 'template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(basic_ostream<_CharT, _Traits>&, char)'
  573 |     operator<<(basic_ostream<_CharT, _Traits>& __out, char __c)
      |     ^~~~~~~~
/usr/include/c++/14/ostream:573:5: note:   template argument deduction/substitution failed:
a.cc:52:106: note:   'std::_Setprecision' is not derived from 'std::basic_ostream<_CharT, _Traits>'
   52 |                 cout << fixed << setprecision(DIGITS) << E[i].px << fixed < setprecision(DIGITS) << E[i].py << endl;
      |                                                                                                          ^~
/usr/include/c++/14/ostream:579:5: note: candidate: 'template<class _Traits> std::basic_ostream<char, _Traits>& std::operator<<(basic_ostream<char, _Traits>&, char)'
  579 |     operator<<(basic_ostream<char, _Traits>& __out, char __c)
      |     ^~~~~~~~
/usr/include/c++/14/ostream:579:5: note:   template argument deduction/substitution failed:
a.cc:52:106: note:   'std::_Setprecision' is not derived from 'std::basic_ostream<char, _Traits>'
   52 |                 cout << fixed << setprecision(DIGITS) << E[i].px << fixed < setprecision(DIGITS) << E[i].py << endl;
      |                                                                                                          ^~
/usr/include/c++/14/ostream:590:5: note: candidate: 'template<class _Traits> std::basic_ostream<char, _Traits>& std::operator<<(basic_ostream<char, _Traits>&, signed char)'
  590 |     operator<<(basic_ostream<char, _Traits>& __out, signed char __c)
      |     ^~~~~~~~
/usr/include/c++/14/ostream:590:5: note:   template argument deduction/substitution failed:
a.cc:52:106: note:   'std::_Setprecision' is not derived from 'std::basic_ostream<char, _Traits>'
   52 |                 cout << fixed << setprecision(DIGITS) << E[i].px << fixed < setprecision(DIGITS) << E[i].py << endl;
      |                                                                                                          ^~
/usr/include/c++/14/ostream:595:5: note: candidate: 'template<class _Traits> std::basic_ostream<char, _Traits>& std::operator<<(basic_ostream<char, _Traits>&, unsigned char)'
  595 |     operator<<(basic_ostream<char, _Traits>& __out, unsigned char __c)
      |     ^~~~~~~~
/usr/include/c++/14/ostream:595:5: note:   template argument deduction/substitution failed:
a.cc:52:106: note:   'std::_Setprecision' is not derived from 'std::basic_ostream<char, _Traits>'
   52 |                 cout << fixed << setprecision(DIGITS) << E[i].px << fixed < setprecision(DIGITS) << E[i].py << endl;
      |                                                                                                          ^~
/usr/include/c++/14/ostream:654:5: note: candidate: 'template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(basic_ostream<_CharT, _Traits>&, const _CharT*)'
  654 |     operator<<(basic_ostream<_CharT, _Traits>& __out, const _CharT* __s)
      |     ^~~~~~~~
/usr/include/c++/14/ostream:654:5: note:   template argument deduction/substitution failed:
a.cc:52:106: note:   'std::_Setprecision' is not derived from 'std::basic_ostream<_CharT, _Traits>'
   52 |                 cout << fixed << setprecision(DIGITS) << E[i].px << fixed < setprecision(DIGITS) << E[i].py << endl;
      |                                                                                                          ^~
In file included from /usr/include/c++/14/ostream:1022:
/usr/include/c++/14/bits/ostream.tcc:307:5: note: candidate: 'template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(basic_ostream<_CharT, _Traits>&, const char*)'
  307 |     operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s)
      |     ^~~~~~~~
/usr/include/c++/14/bits/ostream.tcc:307:5: note:   template argument deduction/substitution failed:
a.cc:52:106: note:   'std::_Setprecision' is not derived from 'std::basic_ostream<_CharT, _Traits>'
   52 |                 cout << fixed << setprecision(DIGITS) << E[i].px << fixed < setprecision(DIGITS) << E[i].py << endl;
      |                                                                                                          ^~
/usr/include/c++/14/ostream:671:5: note: candidate: 'template<class _Traits> std::basic_ostream<char, _Traits>& std::operator<<(basic_ostream<char, _Traits>&, const char*)'
  671 |     operator<<(basic_ostream<char, _Traits>& __out, const char* __s)
      |     ^~~~~~~~
/usr/include/c++/14/ostream:671:5: note:   template argument deduction/substitution failed:
a.cc:52:106: note:   'std::_Setprecision' is not derived from 'std::basic_ostream<char, _Traits>'
   52 |                 cout << fixed << setprecision(DIGITS) << E[i].px << fixed < setprecision(DIGITS) << E[i].py << endl;
      |                                                                                                          ^~
/usr/include/c++/14/ostream:684:5: note: candidate: 'template<class _Traits> std::basic_ostream<char, _Traits>& std::operator<<(basic_ostream<char, _Traits>&, const signed char*)'
  684 |     operator<<(basic_ostream<char, _Traits>& __out, const signed char* __s)
      |     ^~~~~~~~
/usr/include/c++/14/ostream:684:5: note:   template