#include <iostream>

using namespace std;

struct Tacka
{
    long x;
    long y;
};

int main()
{
    long long P = 0, Pmin = 0;
    long N;

    cin >> N;

    Tacka tacke[N];

    for (int i=0; i<N; i++)
    {
        Tacka t;
        cin >> t.x >> t.y;
        tacke[i] = t;
    }

    for (int k=0; k<N; k++)
    {
        int is = 1, ik=N-1;
        long long S = (tacke[0].x * tacke[N-1].y) - (tacke[0].y * tacke[N-1].x);
        if (k == 0)
        {
            S = (tacke[1].x * tacke[N-1].y) - (tacke[1].y * tacke[N-1].x);
            is = 2;
        }
        if (k == N-1)
        {
            S = (tacke[0].x * tacke[N-2].y) - (tacke[0].y * tacke[N-2].x);
            ik = N-2;
        }
        for (int i = is; i <= ik; i++)
        {
            int a = i, b = i-1;

            // iskljucivanje k-te tacke
            if (i == k)
            {
                a = i + 1;
                continue;
            };
            if (i-1 == k)
            {
                b = i-2;
            };

            S += (tacke[a].x * tacke[b].y) - (tacke[a].y * tacke[b].x);

        }
        P = abs(S) / 2;
        //cout << "["<<P<<"]" << endl;
        if (k == 0 || P < Pmin) Pmin = P;
    }


    cout << Pmin;
    return 0;
}