#include <bits/stdc++.h>
using namespace std;
struct point {
  long long x, y;
  point(long long x, long long y) : x(x), y(y) {}
  point() {}
  void read() { scanf("%lld %lld", &x, &y); }
  point operator-(point &other) { return point(x - other.x, y - other.y); }
  double dist_from_line(point p1, point p2) {
    double res =
        abs((p2.y - p1.y) * x - (p2.x - p1.x) * y + p2.x * p1.y - p2.y * p1.x);
    double l = (p1 - p2).len();
    res /= l;
    return res;
  }
  double len() { return sqrt(x * x + y * y); }
};
point vec(point a, point b) { return b - a; }
const int N = 1000 + 10;
point p[N];
int main() {
  int n;
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    p[i].read();
  }
  double res = vec(p[0], p[1]).len();
  for (int i = 0; i < n; i++) {
    point p1 = p[i];
    point p2 = p[(i + 1) % n];
    point p3 = p[(i + 2) % n];
    double got = p2.dist_from_line(p1, p3);
    got /= 2;
    res = min(res, got);
  }
  printf("%.9f\n", res);
  return 0;
}
