#include <bits/stdc++.h>
using namespace std;
using lli = long long;
using ld = long double;
mt19937 rnd(time(nullptr));
struct Vector {
  lli x, y;
  Vector(lli x0 = 0, lli y0 = 0) : x(x0), y(y0) {}
  Vector(Vector a, Vector b) : x(b.x - a.x), y(b.y - a.y) {}
  double len() { return hypot(x, y); }
};
inline lli dot(Vector a, Vector b) { return a.x * b.x + a.y * b.y; }
inline lli cross(Vector a, Vector b) { return a.x * b.y - a.y * b.x; }
double GetDist(Vector c, Vector a, Vector b) {
  Vector ab(a, b), ac(a, c), ba(b, a), bc(b, c);
  if ((dot(ab, ac) >= 0) && (dot(ba, bc) >= 0))
    return abs(cross(ab, ac)) / ab.len();
  return min(ac.len(), bc.len());
}
inline void Solve() {
  lli n = 0;
  cin >> n;
  vector<Vector> data(n);
  for (auto &it : data) cin >> it.x >> it.y;
  double result = 1e18;
  for (lli i = 0; i < n; i++) {
    result =
        min(result, GetDist(data[(i + 1) % n], data[i], data[(i + 2) % n]) / 2);
  }
  cout << result;
}
signed main() {
  cout << fixed << setprecision(6);
  Solve();
  return 0;
}
