Cod sursa(job #891077)

Utilizator SpiderManSimoiu Robert SpiderMan Data 25 februarie 2013 13:32:56
Problema Aria Scor Ascuns
Compilator cpp Status done
Runda Marime 0.82 kb
#include <cstdio>
#include <algorithm>
#include <iostream>
#include <iomanip>
#define pdd pair <double, double>
#define x first
#define y second
using namespace std;
#define NMAX 100005
#define eps 1e-6
int n;
pdd pts[NMAX];
long double res;

long double area(pdd p1, pdd p2)
{
    return (long double) p1.x * p2.y - (long double) p2.x * p1.y;
}

int main()
{
    freopen("aria.in","r",stdin);
    freopen ("aria.out", "w", stdout);
    scanf("%d", &n);
    int i;
    for (i = 1; i <= n; i++)
        scanf("%lf%lf", &pts[i].x, &pts[i].y);
    pts[n + 1] = pts[1];

    for (i = 1; i <= n; i++)
        res += area(pts[i], pts[i+1]);
    //printf ("da1 %.9lf\n", (res > -eps ? res /2 : -res / 2));
    cout << setprecision(9) << fixed << "";
    cout << (res > -eps ? res /2 : -res / 2);
    return 0;
}