Cod sursa(job #2929924)

Utilizator BeneIonut2208Bene Ionut-Matei BeneIonut2208 Data 27 octombrie 2022 10:41:21
Problema Aria Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.1 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <cmath>
#include <iomanip>

using namespace std;

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

///varianta cu trapez

struct punct
{
    long double x, y;
};

vector <punct> poligon;
int n;
long double x, y;

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

long double determinant2(punct A, punct B)
{
    return A.x * B.y - B.x * A.y;
}

void citire()
{
    fin >> n;
    for(int i = 0; i < n; i++)
    {
        fin >> x >> y;
        punct t;
        t.x = x;
        t.y = y;
        poligon.push_back(t);
    }
}

long double arie()
{
    long double total = 0;
    for(int i = 0; i < n - 1; i++)
        total += (poligon[i].y + poligon[i + 1].y) * (poligon[i + 1].x - poligon[i].x);
    total += (poligon[n - 1].y + poligon[0].y) * (poligon[0].x - poligon[n - 1].x);
    return 0.5 * abs(total);
}


int main()
{
    citire();
    fout << fixed << setprecision(5) << arie();
    return 0;
}