Cod sursa(job #1979902)

Utilizator eddie.deaconuDeaconu Stefan-Eduard eddie.deaconu Data 11 mai 2017 17:30:42
Problema Aria Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <iostream>
#include <fstream>
#include <cmath>

using namespace std;

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

struct punct
{
    double x, y;
};

void citire(punct v[], int &n)
{
    f >> n;
    for(int i = 1; i <= n; i++)
        f >> v[i].x >> v[i].y;
}

double det_arie_triunghi(punct p1, punct p2)
{
    return p1.x * p2.y - p2.x * p1.y;
}

double arie_poligon(punct v[], int n)
{
    double A = 0;
    for(int i = 1; i < n; i++)
        A += det_arie_triunghi(v[i], v[i + 1]);
    A += det_arie_triunghi(v[n], v[1]);
    if(A < 0)A = -A;
    A /= 2;
    return A;
}

int main()
{
    int n;
    punct v[100001];
    citire(v, n);
    double A = arie_poligon(v, n);
    g.setf(ios::fixed);
    g.precision(5);
    g << A;
    f.close();
    g.close();
    return 0;
}