Cod sursa(job #905925)

Utilizator AndreiRSStatescu Andrei Rares AndreiRS Data 6 martie 2013 12:18:11
Problema Aria Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <stdio.h>
using namespace std;

double adet (double x2, double y2, double x3, double y3)
{
	return (x3 - x2) * (- y2) - (- x2) * (y3 - y2);
}

double absd (double a)
{
	if (a < 0) return -a;
	return a;
}

int main ()
{
	freopen ("aria.in", "r", stdin);
	freopen ("aria.out", "w", stdout);
	
	int N, dim = 100005;
	double X[dim], Y[dim], a = 0;
	
	scanf ("%d", &N);
	scanf ("%lf%lf", &X[1], &Y[1]);
	for (int i = 2; i <= N; i++)
	{
		scanf ("%lf%lf", &X[i], &Y[i]);
		a += adet (X[i-1], Y[i-1], X[i], Y[i]);
	}
	a += adet (X[N], Y[N], X[1], Y[1]);
	printf ("%lf\n", absd (a) / 2);
	
	return 0;
}