Cod sursa(job #2064657)

Utilizator theodor.vladTheodor Vlad theodor.vlad Data 12 noiembrie 2017 17:38:44
Problema Aria Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <fstream>
#include <cmath>

using namespace std;
FILE * fin = fopen("aria.in", "r");
FILE * fout = fopen("aria.out", "w");

struct punct
{
	double x, y;
};

double calc_arie(punct *, int);

int n;
punct puncte[100005];

int main()
{
	fscanf(fin, "%d", &n);
	for (int i = 1; i <= n; i++)
		fscanf(fin, "%lf%lf", &puncte[i].x, &puncte[i].y);

	double arie = calc_arie(puncte, n);
	fprintf(fout, "%0.5lf", arie);

	return 0;
}

double calc_arie(punct * a, int n)
{
	double arie = 0;

	for (int i = 2; i <= n - 1; i++)
	{
		double x1 = a[1].x, y1 = a[1].y;
		double x2 = a[i].x, y2 = a[i].y;
		double x3 = a[i + 1].x, y3 = a[i + 1].y;
		arie += fabs((x1 * y2 + x2 * y3 + x3 * y1 - x3 * y2 - x2 * y1 - x1 * y3) / 2.0);
	}

	return arie;
}