Cod sursa(job #1379831)

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

using namespace std;

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

const int Nmax = 100000;

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

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;

    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;
}