Cod sursa(job #1452692)

Utilizator GilgodRobert B Gilgod Data 21 iunie 2015 17:25:26
Problema Aria Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <iostream>
#include <fstream>
#include <list>
#include <assert.h>

const char IN[] = "aria.in", OUT[] = "aria.out";
const int NMAX = 100001;


struct point {
	double x, y;
};

using namespace std;

point P[NMAX];
int N;

inline void read_data() {
	freopen(IN, "r", stdin);
	assert(scanf("%d", &N));
	for (int i = 0; i < N; ++i) {
		assert(scanf("%lf %lf", &P[i].x, &P[i].y));
	}
	fclose(stdin);
}

double area() {
	double S = 0;
	P[N] = P[0];
	for (int i = 0; i < N; ++i)
		S += (P[i].x * P[i + 1].y - P[i + 1].x*P[i].y);
	if (S < 0) S = -S;
	return S/2.0f;
}

int main() {
	read_data();
	fprintf(fopen(OUT, "w"), "%.6f", area());
	return 0;
}