#include <bits/stdc++.h>
using namespace std;
struct Vector {
  long double x, y;
  long double len2() { return x * x + y * y; }
  Vector() : x(0), y(0) {}
  Vector(long double x, long double y) : x(x), y(y) {}
};
Vector operator-(Vector a, Vector b) { return Vector(a.x - b.x, a.y - b.y); }
Vector operator+(Vector a, Vector b) { return Vector(a.x + b.x, a.y + b.y); }
Vector operator*(long double x, Vector a) { return Vector(a.x * x, a.y * x); }
Vector operator*(Vector a, long double x) { return Vector(a.x * x, a.y * x); }
Vector operator/(Vector a, long double x) { return Vector(a.x / x, a.y / x); }
long double operator*(Vector a, Vector b) { return a.x * b.x + a.y * b.y; }
int main() {
  cout.setf(ios::fixed);
  cout.precision(12);
  int n;
  cin >> n;
  vector<Vector> p(n);
  for (int i = 0; i < n; i++) {
    cin >> p[i].x >> p[i].y;
  }
  long double minDist = 3e18L;
  for (int i = 0; i < n; i++) {
    Vector p0 = p[i];
    Vector p1 = p[(i + 1) % n];
    Vector p2 = p[(i + n - 1) % n];
    Vector pd = p2 - p1;
    long double t = ((p2 - p1) * (p0 - p1)) / pd.len2();
    Vector pr = p1 + pd * t;
    Vector pf = pr - p0;
    minDist = min(minDist, pf.len2());
  }
  cout << sqrtl(minDist) / 2 << endl;
  return 0;
}
