#include <bits/stdc++.h>
using namespace std;
int n, m, k;
bool debug = false;
double x[100005], y[100005], cx, cy;
int isj[100005];
double calmj(int i, int j) {
  double x1, x2, y1, y2;
  x1 = x[i] - cx;
  x2 = x[j] - cx;
  y1 = y[i] - cy;
  y2 = y[j] - cy;
  return abs(x1 * y2 - x2 * y1) / 2;
}
double deal() {
  double xx = x[1] - x[0], yy = y[1] - y[0], tx, ty;
  for (int i = 0, j = 2; i < n;) {
    tx = x[j] - x[j - 1];
    ty = y[j] - y[j - 1];
    if (tx * xx + ty * yy <= 0) {
      isj[(i)] = (j - 1);
      i++;
      xx = x[i + 1] - x[i];
      yy = y[i + 1] - y[i];
    } else {
      j++;
    }
  }
  double ps[100005];
  ps[0] = 0;
  double x1, x2, y1, y2;
  for (int i = 1; i < 2 * n; i++) {
    ps[i] = ps[i - 1] + calmj(i, i - 1);
  }
  double mans = -1;
  for (int i = 0; i < n; i++) {
    x1 = x[isj[i]] - x[i + 1];
    y1 = y[isj[i]] - y[i + 1];
    x2 = x[i + 1] - x[i];
    y2 = y[i + 1] - y[i];
    if (abs(x1 * x2 + y1 * y2) < 1e-7) {
      return 0;
    }
    double cc = acos((x1 * x2 + y1 * y2) / sqrt(x1 * x1 + y1 * y1) /
                     sqrt(x2 * x2 + y2 * y2));
    double mj = (x1 * x1 + y1 * y1) * cos(cc) * sin(cc) / 2;
    if (mj < 0) throw "??";
    double mj1 = ps[isj[i]] - ps[i + 1] - calmj(i + 1, isj[i]);
    double ans = mj - mj1;
    if (mans < 0)
      mans = ans;
    else
      mans = min(mans, ans);
  }
  return mans;
}
int main() {
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    scanf("%lf%lf", x + i, y + i);
    x[n + i] = x[i];
    y[n + i] = y[i];
    cx += x[i];
    cy += y[i];
  }
  cx /= n;
  cy /= n;
  double ans = deal();
  memset(isj, 0, sizeof isj);
  reverse(x, x + n + n);
  reverse(y, y + n + n);
  ans = min(ans, deal());
  printf("%.15lf", ans);
  return 0;
}
