Cod sursa(job #1130975)

Utilizator raulmuresanRaul Muresan raulmuresan Data 28 februarie 2014 16:53:05
Problema Aria Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include<cstdio>
#include<cstdlib>
#include<iomanip>
using namespace std;

int n,i,j,d,k;
double x,y,arie;

struct punct
{
    double x,y;
}v[100010];

inline double semn( int A, int B, int C ) {

    return ( double )v[ A ].x*v[ B ].y + v[ B ].x*v[ C ].y + v[ C ].x*v[ A ].y - v[ A ].y*v[ B ].x - v[ B ].y*v[ C ].x - v[ C ].y*v[ A ].x;
}



int main()
{
    freopen("aria.in","r",stdin);
    freopen("aria.out","w",stdout);

    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        scanf("%lf%lf",&v[i].x,&v[i].y);
        x=x+v[i].x;
        y=y+v[i].y;
    }
    v[0].x=x;
    v[0].y=y;
    v[n+1]=v[1];

    for(i=1;i<=n;i++)
    {
        arie=arie+semn(i,i+1,0);
    }
    arie=arie/2.0;
    if(arie<0) arie=-arie;
    printf("%.10lf\n",arie);
}