Cod sursa(job #3155580)

Utilizator andreiomd1Onut Andrei andreiomd1 Data 8 octombrie 2023 18:45:00
Problema Aria Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <fstream>

using namespace std;
using point = pair<int, int>;
using ld = long double;

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;
}