Cod sursa(job #890112)

Utilizator SpiderManSimoiu Robert SpiderMan Data 24 februarie 2013 21:05:54
Problema Aria Scor Ascuns
Compilator cpp Status done
Runda Marime 0.67 kb
#include <cstdio>
#include <algorithm>
#include <fstream>
#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 p1.x * p2.y - p2.x * p1.y;
}

int main()
{
	freopen("aria.in","r",stdin);
    ofstream g("aria.out");
	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]);
    g << setprecision(6) << fixed;
	g << (res > -eps ? res /2 : -res / 2);
	return 0;
}