Cod sursa(job #3312784)

Utilizator robert_dumitruDumitru Robert Ionut robert_dumitru Data 29 septembrie 2025 21:21:13
Problema Aria Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <bits/stdc++.h>
using namespace std;

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

int n;
pair<int, int> a[100005];

int Aria(pair<int, int> A, pair<int, int> B)
{
    return A.first * B.second - A.second * B.first;
}

int main()
{
    fin >> n;
    for (int i = 1; i <= n; i++)
        fin >> a[i].first >> a[i].second;

    // sortare după y, apoi după x
    sort(a + 1, a + n + 1, [](auto &p1, auto &p2) {
        if (p1.second != p2.second)
            return p1.second < p2.second;
        return p1.first < p2.first;
    });

    long long aria = 0;
    a[n + 1] = a[1];
    for (int i = 2; i <= n + 1; i++)
        aria += Aria(a[i - 1], a[i]);

    fout << fixed << setprecision(6) << fabs(aria) / 2.0 << "\n";
    return 0;
}