#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 7, LOG = 30, MODM = 1e9 + 7;
const long long INF = 1e18 + 7;
vector<int> z_function(string s) {
  int n = (int)s.length();
  vector<int> z(n);
  for (int i = 1, l = 0, r = 0; i < n; ++i) {
    if (i <= r) z[i] = min(r - i + 1, z[i - l]);
    while (i + z[i] < n && s[z[i]] == s[i + z[i]]) ++z[i];
    if (i + z[i] - 1 > r) l = i, r = i + z[i] - 1;
  }
  return z;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  int n;
  cin >> n;
  vector<pair<double, double>> q(n);
  for (int i = 0; i < n; ++i) {
    cin >> q[i].first >> q[i].second;
  }
  long double l = 0.0, r = 1e20;
  while (r - l > 1e-7) {
    long double md = (l + r) / 2.0;
    bool fl = 1;
    for (int i = 0; i < n; ++i) {
      int j = (i + 1) % n;
      int k = (i + 2) % n;
      long double a, b, c;
      a = q[k].second - q[i].second;
      b = q[i].first - q[k].first;
      c = -1 * (a * q[i].first + b * q[i].second);
      long double len = ((a * q[j].first + b * q[j].second + c) < 0
                             ? -(a * q[j].first + b * q[j].second + c)
                             : (a * q[j].first + b * q[j].second + c)) /
                        sqrt(a * a + b * b);
      if (len <= 2.0 * md) fl = 0;
    }
    if (fl)
      l = md;
    else
      r = md;
  }
  cout << fixed << setprecision(12) << l;
  return 0;
}
