#include <bits/stdc++.h>
using namespace std;
int n;
struct node {
  double x, y;
} e[1005];
bool check(double t) {
  for (int i = 1; i <= n; i++) {
    int lef = i - 1, rig = i + 1;
    if (lef == 0) lef = n;
    if (rig == n + 1) rig = 1;
    if (fabs(e[lef].x - e[rig].x) < 0.00000001) {
      if (fabs(e[rig].x - e[i].x) / 2 < t) return 0;
      continue;
    }
    double k = (e[rig].y - e[lef].y) / (e[rig].x - e[lef].x);
    double b =
        (e[lef].y * e[rig].x - e[rig].y * e[lef].x) / (e[rig].x - e[lef].x);
    if (k > 0) {
      double kk = -1.0 / k;
      double xx = sqrt((t * t) / (1 + kk * kk));
      double yy = sqrt(t * t - xx * xx);
      if (e[i].x * k + b - e[i].y > 0) {
        double x1 = e[lef].x + xx, y1 = e[lef].y - yy;
        double x2 = e[rig].x + xx, y2 = e[rig].y - yy;
        double x3 = e[i].x - xx, y3 = e[i].y + yy;
        double kk = (y2 - y1) / (x2 - x1);
        double bb = (y1 * x2 - y2 * x1) / (x2 - x1);
        if (x3 * kk + bb - y3 < 0) return 0;
      } else {
        double x1 = e[lef].x - xx, y1 = e[lef].y + yy;
        double x2 = e[rig].x - xx, y2 = e[rig].y + yy;
        double x3 = e[i].x + xx, y3 = e[i].y - yy;
        double kk = (y2 - y1) / (x2 - x1);
        double bb = (y1 * x2 - y2 * x1) / (x2 - x1);
        if (x3 * kk + bb - y3 > 0) return 0;
      }
    } else {
      double kk = -1.0 / k;
      double xx = sqrt((t * t) / (1 + kk * kk));
      double yy = sqrt(t * t - xx * xx);
      if (e[i].x * k - e[i].y + b > 0) {
        double x1 = e[lef].x - xx, y1 = e[lef].y - yy;
        double x2 = e[rig].x - xx, y2 = e[rig].y - yy;
        double x3 = e[i].x + xx, y3 = e[i].y + yy;
        double kk = (y2 - y1) / (x2 - x1);
        double bb = (y1 * x2 - y2 * x1) / (x2 - x1);
        if (x3 * kk + bb - y3 < 0) return 0;
      } else {
        double x1 = e[lef].x + xx, y1 = e[lef].y + yy;
        double x2 = e[rig].x + xx, y2 = e[rig].y + yy;
        double x3 = e[i].x - xx, y3 = e[i].y - yy;
        double kk = (y2 - y1) / (x2 - x1);
        double bb = (y1 * x2 - y2 * x1) / (x2 - x1);
        if (x3 * kk + bb - y3 > 0) return 0;
      }
    }
  }
  return 1;
}
int main() {
  int i, j;
  scanf("%d", &n);
  for (i = 1; i <= n; i++) {
    scanf("%lf%lf", &e[i].x, &e[i].y);
  }
  double ans = 100000000000000.0;
  for (i = 1; i <= n; i++) {
    for (j = i + 1; j <= n; j++) {
      ans = min(ans, sqrt((e[i].x - e[j].x) * (e[i].x - e[j].x) +
                          (e[i].y - e[j].y) * (e[i].y - e[j].y)) /
                         2);
    }
  }
  double l = 0, r = ans;
  for (i = 1; i <= 200; i++) {
    double mid = (l + r) / 2.0;
    if (check(mid))
      l = mid;
    else
      r = mid;
  }
  printf("%.8f\n", l);
  return 0;
}
