#include <bits/stdc++.h>
using namespace std;
const double EPS = -1e8;
const double Pi = acos(-1);
bool inline equ(double a, double b) { return fabs(a - b) < EPS; }
struct Pt {
  long long x, y;
  Pt operator+(Pt a) { return Pt{x + a.x, y + a.y}; }
  Pt operator-(Pt a) { return Pt{x - a.x, y - a.y}; }
  long long operator%(Pt a) { return x * a.y - y * a.x; }
  long long operator*(Pt a) { return x * a.x + y * a.y; }
  void input() { cin >> x >> y; }
};
const int MAXN = 40010;
const long long INF = 10000000000000ll;
int n;
Pt p[MAXN];
inline int nxt(int id) { return id == n ? 1 : id + 1; }
inline int prv(int id) { return id == 1 ? n : id - 1; }
long long sum[MAXN];
inline long long sq(long long x) { return x * x; }
inline long long get_sum(int l, int r) {
  if (l <= r) return sum[r] - sum[l - 1];
  return sum[r] + sum[n] - sum[l - 1];
}
double solve() {
  sum[0] = 0ll;
  for (int i = (1); i <= (n); i++) sum[i] = sum[i - 1] + (p[i] % p[nxt(i)]);
  int j = 1;
  double res = 1e15;
  for (int i = (1); i <= (n); i++) {
    while ((p[nxt(i)] - p[i]) * (p[nxt(j)] - p[j]) > 0ll) j = nxt(j);
    if (i == j) return 0.0;
    Pt a = p[nxt(i)] - p[i];
    Pt b = p[j] - p[i];
    double an = sqrt(sq(a.x) + sq(a.y));
    double adb = a * b;
    double acb = a % b;
    res =
        min(res, (adb / an) * (acb / an) - (get_sum(i, prv(j)) + p[j] % p[i]));
  }
  return res * 0.5;
}
int main() {
  cin >> n;
  for (int i = (1); i <= (n); i++) p[i].input();
  if ((p[2] - p[1]) % (p[3] - p[2]) < 0ll) reverse(p + 1, p + 1 + n);
  double ans1 = solve();
  for (int i = (1); i <= (n); i++) p[i].x *= -1ll;
  reverse(p + 1, p + 1 + n);
  double ans2 = solve();
  double ac = min(ans1, ans2);
  printf("%.10f\n", ac);
}
