#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
using namespace std;
double points[90000];
int n;
bool angle90(int i, int j, int n, double* points) {
  double x1, x2, y1, y2;
  x1 = points[2 * ((i + 1) % n)] - points[2 * i];
  x2 = points[2 * ((j + 1) % n)] - points[2 * j];
  y1 = points[2 * ((i + 1) % n) + 1] - points[2 * i + 1];
  y2 = points[2 * ((j + 1) % n) + 1] - points[2 * j + 1];
  if (x1 * x2 + y1 * y2 > 0) {
    return true;
  }
  return false;
}
double findarea(int i, int j, int k, int n, double* points) {
  i = i % n;
  j = j % n;
  k = k % n;
  double x1, x2, y1, y2;
  x1 = points[2 * i] - points[2 * j];
  x2 = points[2 * i] - points[2 * k];
  y1 = points[2 * i + 1] - points[2 * j + 1];
  y2 = points[2 * i + 1] - points[2 * k + 1];
  return 0.5 * fabs(x1 * y2 - x2 * y1);
}
double dist(int i, int j, int n, double* points) {
  i = i % n;
  j = j % n;
  return sqrt((points[2 * i] - points[2 * j]) *
                  (points[2 * i] - points[2 * j]) +
              (points[2 * i + 1] - points[2 * j + 1]) *
                  (points[2 * i + 1] - points[2 * j + 1]));
}
int main() {
  int i, j;
  cin >> n;
  for (i = 0; i < n; i++) {
    cin >> points[2 * i] >> points[2 * i + 1];
  }
  double answer = 1000000000000000000, area = 0;
  j = 1;
  for (i = 0; i < n; i++) {
    while (angle90(i, j, n, points)) {
      area += findarea(i, j, j + 1, n, points);
      j = (j + 1) % n;
    }
    double a = 2 * findarea(i, i + 1, j, n, points) / dist(i, i + 1, n, points);
    double c = dist(i, j, n, points);
    double b = sqrt(c * c - a * a);
    double temp_area = fabs(a * b * 0.5);
    answer = min(answer, fabs(temp_area - area));
    area -= findarea(i, i + 1, j, n, points);
  }
  for (i = 0; i < n / 2; i++) {
    double tempx = points[2 * i];
    double tempy = points[2 * i + 1];
    points[2 * i] = points[2 * (n - 1 - i)];
    points[2 * i + 1] = points[2 * (n - 1 - i) + 1];
    points[2 * (n - 1 - i)] = tempx;
    points[2 * (n - 1 - i) + 1] = tempy;
  }
  area = 0;
  j = 1;
  for (i = 0; i < n; i++) {
    while (angle90(i, j, n, points)) {
      area += findarea(i, j, j + 1, n, points);
      j = (j + 1) % n;
    }
    double a = 2 * findarea(i, i + 1, j, n, points) / dist(i, i + 1, n, points);
    double c = dist(i, j, n, points);
    double b = sqrt(c * c - a * a);
    double temp_area = fabs(a * b * 0.5);
    answer = min(answer, fabs(temp_area - area));
    area -= findarea(i, i + 1, j, n, points);
  }
  cout << fixed;
  cout << setprecision(15) << answer << endl;
  return 0;
}
