Language: C++

#include<iostream>
#include<fstream>
#include<sstream>
#include<string>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<ctime>
#include<stack>
#include<queue>
#include<set>
#include<map>
#include<vector>
#include<list>
#include<algorithm>
#include<utility>
#include<complex>
#define REP( i, m, n ) for ( int i = (int)( m ); i < (int)( n ); ++i )
#define EACH( v, c ) for ( auto &v : c )

#define ALL( c ) (c).begin(), (c).end()

struct Point
{
	double x, y;

	Point() : x( 0 ), y( 0 )
	{
		return;
	}

	Point( double x, double y ) : x( x ), y( y )
	{
		return;
	}

	Point operator + ( const Point &a ) const
	{
		return Point( x + a.x, y + a.y );
	}

	Point operator - ( const Point &a ) const
	{
		return Point( x - a.x, y - a.y );
	}

	Point operator * ( const double &a ) const
	{
		return Point( x * a, y * a );
	}

	Point operator / ( const double &a ) const
	{
		return Point( x / a, y / a );
	}

	bool operator < ( const Point &a ) const
	{
		return x == a.x ? y < a.y : x < a.x;
	}
};

// ??????
double cross( const Point &a, const Point &b )
{
	return a.x * b.y - a.y * b.x;
}

// Graham Scan
vector< Point > getConvex( vector< Point > ps )
{
	const int N = ps.size();

	sort( ALL( ps ) );

	int k = 0;
	vector< Point > convex( N * 2 );

	for ( int i = 0; i < N; i++ )
	{
		while ( 2 <= k && cross( convex[ k - 1 ] - convex[ k - 2 ], ps[i] - convex[ k - 1 ] ) <= 0 )
		{
			k--;
		}

		convex[ k++ ] = ps[i];
	}

	for ( int i = N - 2, t = k; 0 <= i; i-- )
	{
		while ( t < k && cross( convex[ k - 1 ] - convex[ k - 2 ], ps[i] - convex[ k - 1 ] ) <= 0 )
		{
			k--;
		}

		convex[ k++ ] = ps[i];
	}

	convex.resize( k - 1 );

	return convex;
}

int main()
{
	cin.tie( 0 );
	ios::sync_with_stdio( false );

	while ( true )
	{
		int n;
		cin >> n;

		if ( !n )
		{
			break;
		}

		vector< Point > ps( n );

		EACH( p, ps )
		{
			char d;

			cin >> p.x >> d >> p.y;
		}

		vector< Point > convex = getConvex( ps );

		cout << n - convex.size() << endl;
	}

	return 0;
}

Compiler output:
a.cc:70:1: error: 'vector' does not name a type
   70 | vector< Point > getConvex( vector< Point > ps )
      | ^~~~~~
a.cc: In function 'int main()':
a.cc:106:9: error: 'cin' was not declared in this scope; did you mean 'std::cin'?
  106 |         cin.tie( 0 );
      |         ^~~
      |         std::cin
In file included from a.cc:1:
/usr/include/c++/14/iostream:62:18: note: 'std::cin' declared here
   62 |   extern istream cin;           ///< Linked to standard input
      |                  ^~~
a.cc:107:9: error: 'ios' has not been declared
  107 |         ios::sync_with_stdio( false );
      |         ^~~
a.cc:119:17: error: 'vector' was not declared in this scope
  119 |                 vector< Point > ps( n );
      |                 ^~~~~~
a.cc:119:17: note: suggested alternatives:
In file included from /usr/include/c++/14/vector:66,
                 from /usr/include/c++/14/queue:63,
                 from a.cc:10:
/usr/include/c++/14/bits/stl_vector.h:428:11: note:   'std::vector'
  428 |     class vector : protected _Vector_base<_Tp, _Alloc>
      |           ^~~~~~
/usr/include/c++/14/vector:93:13: note:   'std::pmr::vector'
   93 |       using vector = std::vector<_Tp, polymorphic_allocator<_Tp>>;
      |             ^~~~~~
a.cc:119:31: error: expected primary-expression before '>' token
  119 |                 vector< Point > ps( n );
      |                               ^
a.cc:119:33: error: 'ps' was not declared in this scope
  119 |                 vector< Point > ps( n );
      |                                 ^~
a.cc:128:31: error: expected primary-expression before '>' token
  128 |                 vector< Point > convex = getConvex( ps );
      |                               ^
a.cc:128:33: error: 'convex' was not declared in this scope
  128 |                 vector< Point > convex = getConvex( ps );
      |                                 ^~~~~~
a.cc:128:42: error: 'getConvex' was not declared in this scope
  128 |                 vector< Point > convex = getConvex( ps );
      |                                          ^~~~~~~~~
a.cc:130:17: error: 'cout' was not declared in this scope; did you mean 'std::cout'?
  130 |                 cout << n - convex.size() << endl;
      |                 ^~~~
      |                 std::cout
/usr/include/c++/14/iostream:63:18: note: 'std::cout' declared here
   63 |   extern ostream cout;          ///< Linked to standard output
      |                  ^~~~
a.cc:130:46: error: 'endl' was not declared in this scope; did you mean 'std::endl'?
  130 |                 cout << n - convex.size() << endl;
      |                                              ^~~~
      |                                              std::endl
In file included from /usr/include/c++/14/iostream:41:
/usr/include/c++/14/ostream:744:5: note: 'std::endl' declared here
  744 |     endl(basic_ostream<_CharT, _Traits>& __os)
      |     ^~~~