#include <iostream>
#include <cmath>
#include <set>


using namespace std;

struct tacka{
long long int x;
long long int y;
};

long long int mp(tacka a,tacka b){
return (a.x*b.y-a.y*b.x)/2;
}

unsigned long long int povrsina(tacka a[],long long int n,long long obris){
long long int r=0;
for(unsigned long long int i=0;i<n;i++){
    int x=1;
    if(i==obris) continue;
    else if(i+1==obris) x++;
    r+=mp(a[i],a[(i+x)%n]);
}
return abs(r);
}

long long int pv(tacka a,tacka b,tacka c){
return abs(a.x*(b.y-c.y)+b.x*(c.y-a.y)+c.x*(a.y-b.y))/2;
}

int main(){
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
unsigned long long int n;
cin >> n;
tacka *a = new tacka[n];
for(unsigned long long int i=0;i<n;i++) cin >> a[i].x >> a[i].y;
set<unsigned long long int>r;
if(n==4){
    r.insert(pv(a[0],a[1],a[2]));
    r.insert(pv(a[1],a[2],a[3]));
    r.insert(pv(a[2],a[3],a[0]));
    r.insert(pv(a[3],a[0],a[1]));
    cout << *r.begin();
    return 0;
}

for(unsigned long long int i=0;i<n;i++){
    r.insert(povrsina(a,n,i));
}
cout << *r.begin();
return 0;
}