#include <bits/stdc++.h>
const double PI = 3.14159265358979;
using namespace std;
long long x[50000], y[50000];
int N;
double dist2(int i, int j) {
  return ((x[i] - x[j]) * (x[i] - x[j]) + (y[i] - y[j]) * (y[i] - y[j]));
}
double dot(int a, int b, int c, int d) {
  double x1 = x[b % N] - x[a % N];
  double y1 = y[b % N] - y[a % N];
  double x2 = x[d % N] - x[c % N];
  double y2 = y[d % N] - y[c % N];
  double dot = x1 * x2 + y1 * y2;
  return dot;
}
double mx, my;
double sq(int i, int j) {
  double x1 = x[i] - mx;
  double y1 = y[i] - my;
  double x2 = x[j % N] - mx;
  double y2 = y[j % N] - my;
  return 0.5 * fabs(x1 * y2 - y1 * x2);
}
double calc() {
  double res = 1E+100;
  double s = 0;
  int j = 0;
  for (int i = 0; i < N; i++) {
    while (dot(i, (i + 1), j, j + 1) > 1E-8) {
      s += sq(j, j + 1);
      j = (j + 1) % N;
    }
    double a = dot(i, i + 1, i, j) / dist2(i, (i + 1) % N);
    double x1 = (x[(i + 1) % N] - x[i]) * a;
    double y1 = (y[(i + 1) % N] - y[i]) * a;
    double x2 = x[j] - x[i];
    double y2 = y[j] - y[i];
    double ss = fabs(x1 * y2 - y1 * x2) / 2;
    res = min(res, ss - s + sq(i, j));
    s -= sq(i, i + 1);
  }
  return res;
}
int main() {
  cin >> N;
  mx = my = 0;
  for (int i = 0; i < N; i++) {
    cin >> x[i] >> y[i];
    mx += x[i];
    my += y[i];
  }
  mx /= N;
  my /= N;
  double res = calc();
  reverse(x, x + N);
  reverse(y, y + N);
  res = min(res, calc());
  cout << fixed << setprecision(10) << res << endl;
}
