#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define sd(x) scanf("%d", &(x))
#define pii pair<int, int>
#define F first
#define S second
#define all(c) ((c).begin()), ((c).end())
#define sz(x) ((int)(x).size())
#define ld long double
template<class T,class U>
ostream& operator<<(ostream& os,const pair<T,U>& p){
os<<"("<<p.first<<", "<<p.second<<")";
return os;
}
template<class T>
ostream& operator <<(ostream& os,const vector<T>& v){
os<<"{";
for(int i = 0;i < (int)v.size(); i++){
if(i)os<<", ";
os<<v[i];
}
os<<"}";
return os;
}
#ifdef LOCAL
#define cerr cout
#else
#endif
#define TRACE
#ifdef TRACE
#define trace(...) __f(#__VA_ARGS__, __VA_ARGS__)
template <typename Arg1>
void __f(const char* name, Arg1&& arg1){
cerr << name << " : " << arg1 << std::endl;
}
template <typename Arg1, typename... Args>
void __f(const char* names, Arg1&& arg1, Args&&... args){
const char* comma = strchr(names + 1, ',');cerr.write(names, comma - names) << " : " << arg1<<" | ";__f(comma+1, args...);
}
#else
#define trace(...)
#endif
struct PT{
ll a, b;
PT(){}
PT(ll _a, ll _b) : a(_a), b(_b){};
PT operator - (const PT & p) const{
return PT(a - p.a, b - p.b);
}
PT operator + (const PT & p) const{
return PT(a + p.a, b + p.b);
}
ll operator * (const PT & p) const{
return (a * p.b - b * p.a);
}
};
const int N = 100005;
PT P[N];
int main(){
int n; sd(n);
for(int i = 0; i < n; i++){
scanf("%lld", &P[i].a),scanf("%lld", &P[i].b);
assert(max(abs(P[i].a), abs(P[i].b)) <= 1e7);
}
ll areaP = 0, area = 0;
for(int i = 0; i < n; i++){
PT p = P[i] - P[(i + n - 1) % n], q = P[(i + 1) % n] - P[i];
ll z = p * q;
assert(z > 0);
area += abs(p * q);
areaP += p * P[i];
}
areaP = abs(areaP);
printf("%.10lf\n", (4 * areaP - area) / 8.);
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIHNkKHgpIHNjYW5mKCIlZCIsICYoeCkpCiNkZWZpbmUgcGlpIHBhaXI8aW50LCBpbnQ+CiNkZWZpbmUgRiBmaXJzdAojZGVmaW5lIFMgc2Vjb25kCiNkZWZpbmUgYWxsKGMpICgoYykuYmVnaW4oKSksICgoYykuZW5kKCkpCiNkZWZpbmUgc3ooeCkgKChpbnQpKHgpLnNpemUoKSkKI2RlZmluZSBsZCBsb25nIGRvdWJsZQoKdGVtcGxhdGU8Y2xhc3MgVCxjbGFzcyBVPgpvc3RyZWFtJiBvcGVyYXRvcjw8KG9zdHJlYW0mIG9zLGNvbnN0IHBhaXI8VCxVPiYgcCl7Cglvczw8IigiPDxwLmZpcnN0PDwiLCAiPDxwLnNlY29uZDw8IikiOwoJcmV0dXJuIG9zOwp9Cgp0ZW1wbGF0ZTxjbGFzcyBUPgpvc3RyZWFtJiBvcGVyYXRvciA8PChvc3RyZWFtJiBvcyxjb25zdCB2ZWN0b3I8VD4mIHYpewoJb3M8PCJ7IjsKCWZvcihpbnQgaSA9IDA7aSA8IChpbnQpdi5zaXplKCk7IGkrKyl7CgkJaWYoaSlvczw8IiwgIjsKCQlvczw8dltpXTsKCX0KCW9zPDwifSI7CglyZXR1cm4gb3M7Cn0KCiNpZmRlZiBMT0NBTAojZGVmaW5lIGNlcnIgY291dAojZWxzZQojZW5kaWYKCiNkZWZpbmUgVFJBQ0UKCiNpZmRlZiBUUkFDRQojZGVmaW5lIHRyYWNlKC4uLikgX19mKCNfX1ZBX0FSR1NfXywgX19WQV9BUkdTX18pCnRlbXBsYXRlIDx0eXBlbmFtZSBBcmcxPgp2b2lkIF9fZihjb25zdCBjaGFyKiBuYW1lLCBBcmcxJiYgYXJnMSl7CgljZXJyIDw8IG5hbWUgPDwgIiA6ICIgPDwgYXJnMSA8PCBzdGQ6OmVuZGw7Cn0KdGVtcGxhdGUgPHR5cGVuYW1lIEFyZzEsIHR5cGVuYW1lLi4uIEFyZ3M+CnZvaWQgX19mKGNvbnN0IGNoYXIqIG5hbWVzLCBBcmcxJiYgYXJnMSwgQXJncyYmLi4uIGFyZ3MpewoJY29uc3QgY2hhciogY29tbWEgPSBzdHJjaHIobmFtZXMgKyAxLCAnLCcpO2NlcnIud3JpdGUobmFtZXMsIGNvbW1hIC0gbmFtZXMpIDw8ICIgOiAiIDw8IGFyZzE8PCIgfCAiO19fZihjb21tYSsxLCBhcmdzLi4uKTsKfQojZWxzZQojZGVmaW5lIHRyYWNlKC4uLikKI2VuZGlmCgpzdHJ1Y3QgUFR7CiAgICBsbCBhLCBiOwogICAgUFQoKXt9CiAgICBQVChsbCBfYSwgbGwgX2IpIDogYShfYSksIGIoX2Ipe307CiAgICBQVCBvcGVyYXRvciAtIChjb25zdCBQVCAmIHApIGNvbnN0ewogICAgICAgIHJldHVybiBQVChhIC0gcC5hLCBiIC0gcC5iKTsKICAgIH0KICAgIFBUIG9wZXJhdG9yICsgKGNvbnN0IFBUICYgcCkgY29uc3R7CiAgICAgICAgcmV0dXJuIFBUKGEgKyBwLmEsIGIgKyBwLmIpOwogICAgfQoKICAgIGxsIG9wZXJhdG9yICogKGNvbnN0IFBUICYgcCkgY29uc3R7CiAgICAgICAgcmV0dXJuIChhICogcC5iIC0gYiAqIHAuYSk7CiAgICB9Cn07Cgpjb25zdCBpbnQgTiA9IDEwMDAwNTsKUFQgUFtOXTsKaW50IG1haW4oKXsKICAgIGludCBuOyBzZChuKTsKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBuOyBpKyspewogICAgICAgIHNjYW5mKCIlbGxkIiwgJlBbaV0uYSksc2NhbmYoIiVsbGQiLCAmUFtpXS5iKTsKICAgICAgICBhc3NlcnQobWF4KGFicyhQW2ldLmEpLCBhYnMoUFtpXS5iKSkgPD0gMWU3KTsKICAgIH0KICAgIGxsIGFyZWFQID0gMCwgYXJlYSA9IDA7CgogICAgZm9yKGludCBpID0gMDsgaSA8IG47IGkrKyl7CiAgICAgICAgUFQgcCA9IFBbaV0gLSBQWyhpICsgbiAtIDEpICUgbl0sIHEgPSBQWyhpICsgMSkgJSBuXSAtIFBbaV07CiAgICAgICAgbGwgeiA9IHAgKiBxOwogICAgICAgIGFzc2VydCh6ID4gMCk7CiAgICAgICAgYXJlYSArPSBhYnMocCAqIHEpOwogICAgICAgIGFyZWFQICs9IHAgKiBQW2ldOwogICAgfQogICAgYXJlYVAgPSBhYnMoYXJlYVApOwogICAgcHJpbnRmKCIlLjEwbGZcbiIsICg0ICogYXJlYVAgLSBhcmVhKSAvIDguKTsKfQ==