#include <bits/stdc++.h>
using namespace std;
const long double EPS = 0.000000001;
struct point {
  long double x, y;
};
struct Vector {
  long double x, y;
  Vector(point a, point b) {
    x = b.x - a.x;
    y = b.y - a.y;
  }
};
long double operator%(Vector a, Vector b) { return a.x * b.y - a.y * b.x; }
long double dict(point a, point b) { return hypot(a.x - b.x, a.y - b.y); }
long double dist1(point a, point b, point c) {
  return abs(Vector(a, b) % Vector(a, c)) / dict(b, c);
}
signed main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int n;
  cin >> n;
  vector<point> a(n);
  for (auto& x : a) {
    cin >> x.x >> x.y;
  }
  a.push_back(a[0]);
  a.push_back(a[1]);
  long double left = 0, right = 1000000000000;
  while (right - left > EPS) {
    long double mid = (right + left) / 2;
    bool possible = true;
    for (int i = 0; i < n; ++i) {
      if (dist1(a[i + 1], a[i], a[i + 2]) < 2 * mid) {
        possible = false;
        break;
      }
    }
    if (possible) {
      left = mid;
    } else {
      right = mid;
    }
  }
  cout.precision(16);
  cout << left << "\n";
  return 0;
}
