Cod sursa(job #2018383)

Utilizator patcasrarespatcas rares danut patcasrares Data 4 septembrie 2017 19:12:31
Problema Aria Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include<fstream>
#include<cmath>
#include<iostream>
#include<iomanip>
#define x first
#define y second
using namespace std;
ifstream fin("aria.in");
ofstream fout("aria.out");
int n;
long double mx,my,a;
typedef pair<long double,long double> per;
per x[100005];
long double arie(per a,per b,per c)
{
    return abs(a.x*b.y+b.x*c.y+c.x*a.y-b.y*c.x-c.y*a.x-a.y*b.x);
}
int main()
{
    fin>>n;
    for(int i=1;i<=n;i++)
    {
        fin>>x[i].x>>x[i].y;
        mx+=x[i].first;
        my+=x[i].second;
    }
    mx/=n;
    my/=n;
    n++;
    x[n].x=x[1].x;
    x[n].y=x[1].y;
   // cout<<arie(make_pair(0,0),make_pair(4,0),make_pair(0,4))/2<<'\n';
    for(int i=2;i<=n;i++)
    {
        a+=arie(x[i],x[i-1],make_pair(mx,my))/2;
       // cout<<arie(x[i],x[i-1],make_pair(mx,my))<<'\n';
    }
    fout<<fixed<<setprecision(9)<<a;
}