#include <bits/stdc++.h>
int dx[] = {0, -1, 0, 1, -1, 1, -1, 1};
int dy[] = {-1, 0, 1, 0, 1, -1, -1, 1};
const int N = 2e5 + 5, oo = 1e9;
const long long MOD = 1e9 + 7, MOD2 = 1e9 + 9, p1 = 1000003, p2 = 1000033;
const double pi = acos(-1);
using namespace std;
long double pointLineDist(const complex<long double>& a,
                          const complex<long double>& b,
                          const complex<long double>& p) {
  if (((((conj(((b) - (a))) * (((b) - (a)))).real())) < 1e-9))
    return hypot(a.real() - p.real(), a.imag() - p.imag());
  return fabs(((conj(((b) - (a))) * (((p) - (a)))).imag()) /
              ((long double)hypot((((b) - (a))).imag(), (((b) - (a))).real())));
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  int n;
  cin >> n;
  long double x[n + 5], y[n + 5];
  for (int i = 0; i < n; i++) cin >> x[i] >> y[i];
  x[n] = x[0], y[n] = y[0];
  long double ans = 1e18;
  for (int i = 1; i <= n; i++) {
    ans = min(ans, pointLineDist(complex<long double>(x[i - 1], y[i - 1]),
                                 complex<long double>(x[i + 1], y[i + 1]),
                                 complex<long double>(x[i], y[i])));
  }
  ans = min(ans, pointLineDist(complex<long double>(x[n - 1], y[n - 1]),
                               complex<long double>(x[1], y[1]),
                               complex<long double>(x[0], y[0])));
  cout << fixed << setprecision(9) << ans / 2.0;
  return 0;
}
