Cod sursa(job #1379835)

Utilizator AlexandruValeanuAlexandru Valeanu AlexandruValeanu Data 6 martie 2015 19:46:18
Problema Aria Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <bits/stdc++.h>

using namespace std;

#define Point pair<long double,long double>
#define x first
#define y second

const int Nmax = 100000;

Point P[Nmax + 1];
int N;
long double xG, yG;

long double area(Point A, Point B, Point C)
{
    return abs( (B.x - A.x) * (C.y - A.y) - (B.y - A.y) * (C.x - A.x) );
}

int main()
{
    ifstream in("aria.in");
    ofstream out("aria.out");

    in >> N;

    for ( int i = 0; i < N; ++i )
    {
        in >> P[i].x >> P[i].y;

        xG += P[i].x;
        yG += P[i].y;
    }

    P[N] = P[0];

    xG /= 1.0 * N;
    yG /= 1.0 * N;

    long double A = 0;

    for ( int i = 0; i < N; ++i )
        A += area({xG, yG}, P[i], P[i + 1]);

    out << fixed << setprecision(10);
    out << A / 2.0 << "\n";

    return 0;
}