Pagini recente » Cod sursa (job #548499) | Cod sursa (job #2755458) | Cod sursa (job #270123) | Cod sursa (job #531410) | Cod sursa (job #2763750)
#include <fstream>
using namespace std;
ifstream cin("aria.in");
ofstream cout("aria.out");
const int NMAX = 1e5;
int N;
pair<double, double> points[NMAX + 2];
/*
xa * yb + xb * yc + xc * ya
- xc * yb - xa * yc - xb * ya
*/
double TriangleArea(pair<double, double> A, pair<double, double> B, pair<double, double> C) {
return 0.5 * (A.first * B.second + B.first * C.second + C.first * A.second
- C.first * B.second - A.first * C.second - B.first * A.second);
}
int main() {
cin >> N;
for(int i = 1; i <= N; i++) {
cin >> points[i].first >> points[i].second;
}
points[N + 1] = points[1];
double area = 0;
for(int i = 1; i <= N; i++) {
area += TriangleArea({0, 0}, points[i], points[i + 1]);
}
cout << max(area, -area) << '\n';
return 0;
}