#include <bits/stdc++.h>
using namespace std;
const int N = (int)1e5 + 7;
long double sqr(long double a) { return a * a; }
struct Point {
  long long x, y;
  Point() : x(), y() {}
  Point(long long _x, long long _y) : x(_x), y(_y) {}
  Point operator+(const Point &a) { return Point(x + a.x, y + a.y); }
  Point operator-(const Point &a) { return Point(x - a.x, y - a.y); }
  long long operator%(const Point &a) { return x * a.x + y * a.y; }
  long long operator*(const Point &a) { return x * a.y - y * a.x; }
  long double len() { return sqrt(x * x + y * y); }
  long double dist(const Point &b) { return (*this - b).len(); }
  void scan() { scanf("%lld%lld", &x, &y); }
};
Point points[1111];
int main() {
  int n;
  cin >> n;
  for (int i = 0; i < (int)n; i++) points[i].scan();
  long double answer = 1e18;
  for (int i = 0; i < (int)n; i++) {
    Point prev = points[(i - 1 + n) % n];
    Point next = points[(i + 1) % n];
    long double cross = abs((points[i] - prev) * (next - prev));
    answer = min(answer, cross / prev.dist(next));
  }
  printf("%.10lf\n", (double)answer / 2.0);
}
