#include <bits/stdc++.h>
using namespace std;
const int MAXN = 101 * 1001;
complex<double> p[MAXN];
double dot(complex<double> a, complex<double> b) {
  return a.real() * b.real() + a.imag() * b.imag();
}
double cross(complex<double> a, complex<double> b) {
  return a.real() * b.imag() - a.imag() * b.real();
}
double ps[MAXN];
int32_t main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  int n;
  cin >> n;
  for (int i = 0; i < n; i++) {
    int x, y;
    cin >> x >> y, p[i] = complex<double>(x, y);
  }
  double s = 0, ans = 1e18;
  for (int i = 0; i < n; i++) s += cross(p[i], p[i + 1]);
  for (int i = 0; i < n; i++) p[i + n] = p[i];
  for (int i = 1; i < 2 * n; i++) ps[i] = ps[i - 1] + cross(p[i - 1], p[i]);
  int j = 1;
  double x = cross(p[0], p[1]);
  for (int i = 0; i < n; i++) {
    while (j < 2 * n - 1 && dot(p[i + 1] - p[i], p[j] - p[i]) <
                                dot(p[i + 1] - p[i], p[j + 1] - p[i]))
      x += cross(p[j], p[j + 1]), j++;
    complex<double> q = p[i] + dot(p[j] - p[i], p[i + 1] - p[i]) /
                                   dot(p[i + 1] - p[i], p[i + 1] - p[i]) *
                                   (p[i + 1] - p[i]);
    ans = min(
        ans,
        abs((ps[j] - ps[i + 1] + cross(p[j], q) + cross(q, p[i + 1])) / 2.));
    x -= cross(p[i], p[i + 1]);
  }
  reverse(p, p + n);
  for (int i = 0; i < n; i++) p[i + n] = p[i];
  for (int i = 1; i < 2 * n; i++) ps[i] = ps[i - 1] + cross(p[i - 1], p[i]);
  j = 1;
  x = cross(p[0], p[1]);
  for (int i = 0; i < n; i++) {
    while (j < 2 * n - 1 && dot(p[i + 1] - p[i], p[j] - p[i]) <
                                dot(p[i + 1] - p[i], p[j + 1] - p[i]))
      x += cross(p[j], p[j + 1]), j++;
    complex<double> q = p[i] + dot(p[j] - p[i], p[i + 1] - p[i]) /
                                   dot(p[i + 1] - p[i], p[i + 1] - p[i]) *
                                   (p[i + 1] - p[i]);
    ans = min(
        ans,
        abs((ps[j] - ps[i + 1] + cross(p[j], q) + cross(q, p[i + 1])) / 2.));
    x -= cross(p[i], p[i + 1]);
  }
  cout << fixed << setprecision(10) << ans;
}
