#include <bits/stdc++.h>
#define endl '\n'
#define int long long

using namespace std;

const int MAXN = 1e5+10;

struct coord{
    int x,y;
};

int n;
coord tacka[MAXN];

int povN() {
    int pov=0;
    for(int i=0;i<n;i++) {
        int j=(i+1)%n;
        pov+=(tacka[i].x*tacka[j].y)>>1;
        pov-=(tacka[i].y*tacka[j].x)>>1;
    }
    return abs(pov);
}


int povrsina(coord a,coord b,coord c){
    return abs(((a.x>>1)*(b.y-c.y))+((b.x>>1)*(c.y-a.y))+((c.x>>1)*(a.y-b.y)));
}

void solve1(){
    int pov=LLONG_MAX;
    for(int i=0;i<4;i++) {
        for(int j=i+1;j<4;j++) {
            for(int k=j+1;k<4;k++) {
                pov = min(pov, povrsina(tacka[i],tacka[j],tacka[k]));
            }
        }
    }
    cout<<pov<<endl;
}

void solve2(){
    int pov=0;
    for(int i=0;i<n;i++){
        int il=(i+n-1)%n,ir=(i+1)%n;
        pov=max(pov,povrsina(tacka[il],tacka[i],tacka[ir]));
    }
    cout<<povN()-pov<<endl;
}

signed main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    cin>>n;
    for(int i=0;i<n;i++)cin>>tacka[i].x>>tacka[i].y;
    if(n==4){
        solve1();
    }
    else{
        solve2();
    }
    return 0;
}