Cod sursa(job #969691)

Utilizator gabrielinelusGabriel-Robert Inelus gabrielinelus Data 5 iulie 2013 01:36:42
Problema Aria Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
/**
 1 p1.x p1.y
 1 p2.x p2.y
 1 p3.x p3.y

 return p2.x*p3.y+p3.x*p1.y+p1.x*p2.y-p2.x*p1.y-p3.x*p2.y-p3.y*p1.x;
*/
#include <cstdio>
#include <algorithm>
#define pdd pair<double,double>
#define x first
#define y second
#define mp make_pair
FILE *f=fopen("aria.in","r");
FILE *g=fopen("aria.out","w");
using namespace std;
double abso(double x){if(x>0)return x;return -x;}
double arie(pdd p1,pdd p2,pdd p3)
{
    return p2.x*p3.y+p3.x*p1.y+p1.x*p2.y-p2.x*p1.y-p3.x*p2.y-p3.y*p1.x;
}
int n;
pdd p[100002];
int main()
{
    int p1,p2;
    fscanf(f,"%d",&n);
    for(int i=1;i<=n;++i){fscanf(f,"%d%d",&p1,&p2);p[i]=mp(p1,p2);}
    double AR=0;
    for(int i=2;i<n;++i)
        AR+=(abso(arie(p[1],p[i],p[i+1]))/2);
    fprintf(g,"%.5lf",AR);
    return 0;
}