Language: C++

#include<bits/stdc++.h>
#include<windows.h>
using namespace std;


typedef complex<double> P; //Point
typedef pair<P,P> L; //Line, Segment

const double EPS = 1e-7;
const double PI = 6.0 * asin(0.5);

namespace std {
  bool operator < (const P& a, const P& b){
    return fabs(real(a)-real(b)) < EPS ? imag(a) < imag(b) : real(a) < real(b);
  }
}

/*
  ?????????????????????
  a.real() * b.real() + a.imag() * b.imag()
*/
double dot(P a, P b){ return real(conj(a)*b); }


/*
  ?????????????????????
  a.real() * b.imag() - a.imag() * b.real()
*/
double cross(P a, P b){ return imag(conj(a)*b); }


// ???????????? a,b ???????????¢???
int ccw(P a, P b, P c){
  b -= a;
  c -= a;
  if(cross(b,c) > EPS) return 1;
  if(cross(b,c) < -EPS) return -1;
  if(dot(b,c) < -EPS) return 2;
  if(norm(b) < norm(c)) return -2;
  return 0;
}

// ????????¨???????????¢
double getDistanceSP(L s, P p){
  if(dot(s.second - s.first, p - s.first) < -EPS) return abs(p - s.first);
  if(dot(s.first - s.second, p - s.second) < -EPS) return abs(p - s.second);
  return abs(cross(s.second - s.first, p - s.first) / abs(s.second - s.first));  //??´?????¨???????????¢
}

/* 
   ???????§???¢???????????????????????????????§???¢????????¨????¢????????????¨???????????????????????? 
   ????????? 0:?????¨ 1:?¢???? 2:?????¨ 
   ???????¨?????????§????????¨??????????????? 
   O(log n) 
*/
int convex_contains(vector<P> v, P p){ 
  int n = v.size(); 
  P g = (v[0] + v[n/3] + v[2*n/3]) / 3.0; 
  int a = 0, b = n; 
  while(a + 1 < b){ 
    int c = (a + b) / 2; 
    if(cross(v[a] - g, v[c] - g) > 0){ 
      if(cross(v[a]-g, p-g) > 0 && cross(v[c]-g, p-g) < 0) b = c; 
      else a = c; 
    } else { 
      if(cross(v[a]-g, p-g) < 0 && cross(v[c]-g, p-g) > 0) a = c; 
      else b = c; 
    } 
  } 
  b %= n; 
  if(cross(v[a] - p, v[b] - p) < 0) return 0; 
  if(cross(v[a] - p, v[b] - p) > 0) return 2; 
  return 1; 
} 
 

int N;
vector<P> v;

const double WPS = 35.0;
const double BPS = 10.0;

int main(){
  while( (~scanf("%d",&N)) && N ){
    v.clear();
    double sx=1e19,sy=1e19,ex=-1e19,ey=-1e19;
    for(int i=0;i<N;i++) {
      int x,y;
      scanf("%d%d",&x,&y); v.push_back( P(x,y) );
      sx = min( (double)x, sx ), sy = min ( (double)y , sy );
      ex = max( (double)x, ex ), ey = max ( (double)y , ey );
    }

    double wx = (ex-sx)/WPS;
    double wy = (ey-sy)/WPS;
    double res;
    for(;wx>EPS&&wy>EPS;){
      res = 0.0;
      P ns = P((ex+sx)/2.0,(ey+sy)/2.0);
      for(double x=sx;x<ex;x+=wx){
	for(double y=sy;y<ey;y+=wy){
	  P c = P(x + wx/2.0,y + wy/2.0);
	  double ret = 1e19;
	  if( convex_contains( v, c ) == 0 ) continue;
	  for(int k=0;k<N;k++){
	    L s = L( v[k] , v[(k+1)%N] );
	    ret = min( ret , getDistanceSP(s,c) );
	  }
	  //	  cout << c <<  " " << " ret : =  " << ret << endl;
	  if( ret > res ){
	    res = ret;
	    ns = c; 
	  }
	}
      }
      //  cout << ns << " res = " << res << endl;
      //printf("(%lf,%lf) - (%lf,%lf) : (%lf,%lf)\n",sx,sy,ex,ey,wx,wy);
      //   Sleep(1000);
      sx = ns.real()-wx*BPS; sy = ns.imag()-wy*BPS;
      ex = ns.real()+wx*BPS; ey = ns.imag()+wy*BPS;
      wx = (ex-sx)/WPS; wy = (ey-sy)/WPS;
  
    }

    printf("%.8lf\n",res);
  }
}

Compiler output:
a.cc:2:9: fatal error: windows.h: No such file or directory
    2 | #include<windows.h>
      |         ^~~~~~~~~~~
compilation terminated.