Cod sursa(job #2763751)

Utilizator Mihai145Oprea Mihai Adrian Mihai145 Data 16 iulie 2021 17:16:55
Problema Aria Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.89 kb
#include <fstream>
#include <iomanip>

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 << fixed << setprecision(6) << max(area, -area) << '\n';
    return 0;
}