Cod sursa(job #2763657)

Utilizator Mihai145Oprea Mihai Adrian Mihai145 Data 15 iulie 2021 18:51:32
Problema Aria Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>
#include <iomanip>

using namespace std;

ifstream fin("aria.in");
ofstream fout("aria.out");

const int NMAX = 100000;

struct pct
{
    long double x, y;
};

long double GetArea(pct A, pct B, pct C)
{
    return A.y * B.x - A.x * B.y + B.y * C.x - B.x * C.y + C.y * A.x - C.x * A.y;
}

int N;
pct v[NMAX + 5];

int main()
{
    fin >> N;

    for(int i = 1; i <= N; i++)
        fin >> v[i].x >> v[i].y;
    v[N + 1].x = v[1].x, v[N + 1].y = v[1].y;

    long double area = 0;
    for(int i = 1; i <= N; i++)
        area += GetArea({0, 0}, v[i], v[i + 1]);

    area = max(area, -area);
    fout << fixed << setprecision(12) << area / 2 << '\n';

    return 0;
}