Cod sursa(job #2776455)

Utilizator George_CristianGeorge Dan-Cristian George_Cristian Data 19 septembrie 2021 20:50:56
Problema Aria Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include <fstream>
#include <cmath>
#include <iomanip>

using namespace std;

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

int n;

struct punct {
    long double x, y;
};

long double arie(punct a, punct b, punct c) {
    return abs(a.x * b.y + b.x * c.y + a.y * c.x - b.y * c.x - a.y * b.x - a.x * c.y);
}

long double calculare_arie() {
    punct primul, p1, p2;
    f >> primul.x >> primul.y >> p2.x >> p2.y;
    long double suma = 0;
    for (int i = 2; i < n; ++i) {
        f >> p1.x >> p1.y;
        suma += arie(primul, p1, p2);
        p2 = p1;
    }
    return suma;
}

int main() {
    ios_base::sync_with_stdio(false);
    f.tie(NULL);
    f >> n;
    if (n <= 2) {
        g << 0;
        return 0;
    }
    g << fixed << setprecision(5) << (calculare_arie() / 2);
    return 0;
}