#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 1;
int n;
struct P {
  double x, y;
  void read() { scanf("%lf %lf", &x, &y); }
  P() {}
  P(double x, double y) : x(x), y(y) {}
  P operator-(const P& r) { return P(x - r.x, y - r.y); }
  double cross(const P& r) { return x * r.x + y * r.y; }
  double len() { return sqrt(x * x + y * y); }
};
P s[maxn];
double calS(double a, double b, double c) {
  double p = (a + b + c) / 2;
  return sqrt(p * (p - a) * (p - b) * (p - c));
}
int main() {
  while (~scanf("%d", &n)) {
    for (int i = 0; i < n; i++) {
      s[i].read();
    }
    double ans = 1e18;
    for (int i = 0; i < n; i++) {
      P v1 = P{s[i].x - s[(i + 1) % n].x, s[i].y - s[(i + 1) % n].y};
      P v2 = P{s[i].x - s[(i - 1 + n) % n].x, s[i].y - s[(i - 1 + n) % n].y};
      P v3 = P{s[(i + 1) % n].x - s[(i - 1 + n) % n].x,
               s[(i + 1) % n].y - s[(i - 1 + n) % n].y};
      double h = calS(v1.len(), v2.len(), v3.len()) / v3.len();
      ans = min(ans, h);
    }
    printf("%.10lf\n", ans);
  }
  return 0;
}
