#include <bits/stdc++.h>
using namespace std;
bool ERROR = false;
int INF = 1e9 + 10;
template <typename T>
T gcd(T a, T b) {
  return b ? gcd(b, a % b) : a;
}
template <typename T>
T lcm(T a, T b) {
  return a * b / gcd(a, b);
}
struct pp {
  double x, y;
};
double dist(pp a, pp b, pp c) {
  double A = b.y - a.y;
  double B = a.x - b.x;
  double C = b.x * a.y - a.x * b.y;
  double dist = (fabs(A * c.x + B * c.y + C)) / (sqrt(A * A + B * B));
  return dist;
}
double distt(pp a, pp b) {
  return sqrt((a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y));
}
int main() {
  int n;
  cin >> n;
  vector<pp> a(n + 3);
  for (int i = 0; i < n; i++) {
    cin >> a[i].x >> a[i].y;
  }
  a[n] = a[0];
  a[n + 1] = a[1];
  double maxx = (double)1e18;
  double r = sqrt(2.0);
  for (int i = 0; i < n; i++) {
    maxx = min(maxx, dist(a[i], a[i + 2], a[i + 1]) / 2.0);
  }
  for (int i = 0; i < n; i++) {
    maxx = min(maxx, distt(a[i], a[i + 1]) / 2.0);
  }
  printf("%.10f", maxx);
  return 0;
}
