#include <stdio.h>
#include <algorithm>
#include <math.h>

using std::max;
using std::min;

struct point {
	float x, y;
};

point tl, tr, bl, br;

int main(int argc, char *argv[])
{
	FILE *fin = fopen("farmeri.in", "r");
	long n;
	fscanf(fin, "%d\n", &n);
	for (long loop_n=0; loop_n<n; loop_n++) {
		point newp;
		fscanf(fin, "%f %f\n", &newp.x, &newp.y);
		if ((newp.x<=tl.x) && (newp.y>=tl.y)) tl=newp;
		if ((newp.x>=tr.x) && (newp.y>=tr.y)) tr=newp;
		if ((newp.x<=bl.x) && (newp.y<=bl.y)) bl=newp;
		if ((newp.x>=br.x) && (newp.y<=br.y)) br=newp;
	}
	fclose(fin);
	
	float a=fabs(max(tl.y, tr.y)-min(bl.y, br.y));
	float b=fabs(max(tr.x, br.x)-min(bl.x, tl.x));
	
	float tlcut=fabs((tr.y-tl.y)*(tr.x-tl.x))/2;
	float trcut=fabs((tr.y-br.y)*(tr.x-br.x))/2;
	float blcut=fabs((tl.y-bl.y)*(tl.x-bl.x))/2;
	float brcut=fabs((br.y-bl.y)*(br.x-bl.x))/2;
	
	float sol=(a*b)-tlcut-trcut-blcut-brcut;
	
	FILE *fout = fopen("farmeri.out", "w");
	fprintf(fout, "%.3f\n", sol);
	fclose(fout);
}
