#include <bits/stdc++.h>
using namespace std;
template <class T>
inline void read(T &x) {
  int f = 0;
  x = 0;
  char ch = getchar();
  for (; !isdigit(ch); ch = getchar()) f |= (ch == '-');
  for (; isdigit(ch); ch = getchar()) x = x * 10 + ch - '0';
  if (f) x = -x;
}
const int N = 605;
const double eps = 1e-6;
namespace {
struct pt {
  double x, y;
  pt(double _x = 0, double _y = 0) : x(_x), y(_y) {}
} p[N], v[N];
pt operator+(pt a, pt b) { return pt(a.x + b.x, a.y + b.y); }
pt operator-(pt a, pt b) { return pt(a.x - b.x, a.y - b.y); }
double operator*(pt a, pt b) { return a.x * b.y - a.y * b.x; }
double len(pt a) { return sqrt(a.x * a.x + a.y * a.y); }
double dis(int k, pt c) { return fabs((c - p[k]) * v[k] / len(v[k])); }
}  // namespace
pt o[N][N], A, B;
double r[N][N], R = 1e99;
int f[N][N], n;
int main() {
  read(n);
  for (int i = (1); i <= (n); i++) {
    read(p[i].x), read(p[i].y);
    p[i + n] = p[i];
  }
  p[n + n + 1] = p[1];
  for (int i = (1); i <= (n * 2); i++) v[i] = p[i + 1] - p[i];
  for (int i = (1); i <= (n); i++) {
    f[i][i] = i;
    o[i][i] = p[i];
    for (int j = (i + 1); j <= (i + n - 1); j++) {
      if (v[i] * v[j] < eps) break;
      f[i][j] = f[i][j - 1];
      while (f[i][j] < j && dis(i, p[f[i][j] + 1]) < dis(j, p[f[i][j] + 1]))
        f[i][j]++;
      pt L = p[f[i][j]], R = p[f[i][j] + 1], M;
      for (int T = (0); T < (50); T++) {
        M = pt((L.x + R.x) * 0.5, (L.y + R.y) * 0.5);
        if (dis(i, M) < dis(j, M))
          L = M;
        else
          R = M;
      }
      o[i][j] = M;
      r[i][j] = max(dis(i, o[i][j]), dis(j, o[i][j]));
    }
  }
  for (int i = (1); i <= (n); i++) {
    if (f[i][i + n - 1] && r[i][i + n - 1] < R)
      R = r[i][i + n - 1], A = B = o[i][i + n - 1];
    for (int j = (i); j <= (i + n - 2); j++)
      if (f[i][j] && f[j + 1][i + n - 1])
        if (max(r[i][j], r[j + 1][i + n - 1]) < R) {
          R = max(r[i][j], r[j + 1][i + n - 1]);
          A = o[i][j], B = o[j + 1][i + n - 1];
        }
  }
  printf("%.10lf\n", R);
  printf("%.10lf %.10lf\n", A.x, A.y);
  printf("%.10lf %.10lf\n", B.x, B.y);
  return 0;
}
