Cod sursa(job #1979893)

Utilizator eddie.deaconuDeaconu Stefan-Eduard eddie.deaconu Data 11 mai 2017 17:18:28
Problema Aria Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 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, punct p3)
{
    return (p1.x - p2.x) * (p2.y - p3.y) - (p2.x - p3.x) * (p1.y - p2.y);
}

double arie_poligon(punct v[], int n)
{
    double A = 0;
    for(int i = 2; i < n; i++)
        A += det_arie_triunghi(v[1], v[i], v[i + 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;
}