#include <bits/stdc++.h>
using namespace std;
inline int min(int a, int b) { return (a > b) ? b : a; }
inline int max(int a, int b) { return (a > b) ? a : b; }
const int N = 1e3 + 10;
const int inf = 1e9 + 7;
const long long linf = 1e17 + 7;
const double eps = 1e-22;
struct node {
  double x, y;
};
long long n;
node p[N];
double mn = 1e12;
double VP(double a, double b, double c, double d) { return a * d - b * c; }
double dist(node a, node b) { return hypot(a.x - b.x, a.y - b.y); }
int main() {
  cin >> n;
  for (int i = 1; i <= n; i++) {
    cin >> p[i].x >> p[i].y;
  }
  p[0] = p[n];
  p[n + 1] = p[1];
  for (int i = 1; i <= n; i++) {
    mn = min(mn, fabs(VP(p[i - 1].x - p[i].x, p[i - 1].y - p[i].y,
                         p[i + 1].x - p[i].x, p[i + 1].y - p[i].y)) /
                     dist(p[i - 1], p[i + 1]));
  }
  cout << fixed << setprecision(10) << mn / 2.0 - eps << endl;
}
