#include <bits/stdc++.h>
using namespace std;
const long long INF = 1e18;
const long long mod = 1e9 + 7;
const int N = 1e3 + 10;
double EPS = 1e-12;
struct PT {
  double x, y;
  PT() {}
  PT(double x, double y) : x(x), y(y) {}
  PT(const PT &p) : x(p.x), y(p.y) {}
  PT operator+(const PT &p) const { return PT(x + p.x, y + p.y); }
  PT operator-(const PT &p) const { return PT(x - p.x, y - p.y); }
  PT operator*(double c) const { return PT(x * c, y * c); }
  PT operator/(double c) const { return PT(x / c, y / c); }
};
double dot(PT p, PT q) { return p.x * q.x + p.y * q.y; }
double dist2(PT p, PT q) { return dot(p - q, p - q); }
double cross(PT p, PT q) { return p.x * q.y - p.y * q.x; }
ostream &operator<<(ostream &os, const PT &p) {
  os << "(" << p.x << "," << p.y << ")";
}
PT ProjectPointSegment(PT a, PT b, PT c) {
  double r = dot(b - a, b - a);
  if (fabs(r) < EPS) return a;
  r = dot(c - a, b - a) / r;
  if (r < 0) return a;
  if (r > 1) return b;
  return a + (b - a) * r;
}
double DistancePointSegment(PT a, PT b, PT c) {
  return (sqrt(dist2(c, ProjectPointSegment(a, b, c)))) / 2;
}
double x[N], y[N];
int main() {
  ios_base::sync_with_stdio(false), cin.tie(0), cout.tie(0);
  int n;
  cin >> n;
  cout << setprecision(12);
  cout << fixed;
  for (int i = 1; i <= n; ++i) cin >> x[i] >> y[i];
  double ans = 1e17;
  for (int i = 1; i <= n; ++i) {
    int frst = i;
    int scnd = ((i + 1) > n ? i + 1 - n : i + 1);
    int thrd = ((i + 2) > n ? i + 2 - n : i + 2);
    ans = min(ans,
              DistancePointSegment(PT(x[frst], y[frst]), PT(x[thrd], y[thrd]),
                                   PT(x[scnd], y[scnd])));
  }
  cout << ans;
  return 0;
}
