Cod sursa(job #3155582)

Utilizator andreiomd1Onut Andrei andreiomd1 Data 8 octombrie 2023 18:48:20
Problema Aria Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream>
#include <iomanip>

using namespace std;

using ld = long double;
using point = pair<ld, ld>;

ifstream f("aria.in");
ofstream g("aria.out");

static constexpr int NMAX = (int)(1e5 + 1);

int n;
point v[NMAX];

static inline void read()
{
    f.tie(nullptr);

    f >> n;
    for (int i = 1; i <= n; ++i)
        f >> v[i].first >> v[i].second;

    return;
}

static inline ld det2(const point &a, const point &b)
{
    return ((a.first * b.second) - (a.second * b.first));
}

int main()
{
    read();

    v[(n + 1)] = v[1];

    ld ans = 0;

    for (int i = 1; i <= n; ++i)
        ans += det2(v[i], v[i + 1]);

    if (ans < (ld)0.0)
        ans = -ans;

    ans *= (ld)(0.5);

    g << setprecision(6) << fixed << ans << '\n';

    return 0;
}