#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:256000000")
using namespace std;
struct dot {
  long double x, y;
  dot() {
    x = 0;
    y = 0;
  }
  dot(long double x, long double y) : x(x), y(y) {}
};
long double dist_2pt(dot pt1, dot pt2);
long double dist_pt_str(dot pt0, dot pt1, dot pt2);
int t;
void solve();
int n;
vector<dot> pt;
long double ans = 1e16;
int main() {
  t = 1;
  for (int i = 0; i < t; ++i) {
    solve();
  }
}
void solve() {
  cout.precision(9);
  cout.setf(ios::fixed, ios::floatfield);
  cin >> n;
  pt.resize(n);
  for (int i = 0; i < int(n); ++i) {
    int v1, v2;
    cin >> v1 >> v2;
    pt[i].x = (long double)v1;
    pt[i].y = (long double)v2;
  }
  dot ft(pt[0].x, pt[0].y);
  dot ft1(pt[1].x, pt[1].y);
  pt.push_back(ft);
  pt.push_back(ft1);
  for (int i = 0; i < int(n); ++i) {
    ans = min(ans, dist_pt_str(pt[i + 1], pt[i], pt[i + 2]));
  }
  cout << ans / (long double)2;
}
long double dist_2pt(dot pt1, dot pt2) {
  return sqrt(((pt2.x - pt1.x) * (pt2.x - pt1.x)) +
              ((pt2.y - pt1.y) * (pt2.y - pt1.y)));
}
long double dist_pt_str(dot pt0, dot pt1, dot pt2) {
  long double fg = abs(((pt2.y - pt1.y) * pt0.x) - ((pt2.x - pt1.x) * pt0.y) +
                       (pt2.x * pt1.y) - (pt2.y * pt1.x));
  long double fg1 = dist_2pt(pt1, pt2);
  return fg / fg1;
}
