#define _CRT_SECURE_NO_WARNINGS
#include <cstdio>
#include <vector>
#include <queue>
#include <algorithm>
#include <string>
#include <tuple>
#include <cmath>
using namespace std;
typedef pair<long double, long double> pii;
int n, cnt = 0, a, b;
priority_queue<int, vector<int>, greater<int>> pq;
vector<pii> v;
int main()
{
int n;
long double a, b;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%Lf %Lf", &a, &b);
v.push_back({ a, b });
}
long double x1, y1, x2, y2, x3, y3;
x1 = v[0].first;
y1 = v[0].second;
long double res = 0;
for (int i = 1; i < v.size(); i++) {
x2 = v[i - 1].first;
y2 = v[i - 1].second;
x3 = v[i].first;
y3 = v[i].second;
res += (x1 * y2 + x2 * y3 + x3 * y1) - (x2 * y1 + x3 * y2 + x1 * y3);
}
printf("%.1Lf", abs(res/2));
return 0;
}
수학적 풀이가 필요한 문제이다...