Cod sursa(job #3256668)

Utilizator zgrimintesTibirean Petru zgrimintes Data 15 noiembrie 2024 17:57:39
Problema Aria Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include <fstream>
#include <iomanip>

using namespace std;

ifstream fin("aria.in");
ofstream fout("aria.out");

struct Punct
{
	double x, y;
};

int n;
double arie;
Punct p[100005];

void citire() {
	for (int i = 0; i < n; i++)
		fin >> p[i].x >> p[i].y;
}

void calculArie() {
	Punct p1, p2;
	int cnt1 = 0, cnt2 = 1;
	p1 = p[cnt1 % n];
	p2 = p[cnt2 % n];

	while (p2.x != p[0].x || p2.y != p[0].y)
	{
		arie += (p1.y + p2.y) * (p2.x - p1.x);

		cnt1++;
		cnt2++;
		p1 = p[cnt1 % n];
		p2 = p[cnt2 % n];
	}

	arie += (p1.y + p2.y) * (p2.x - p1.x);
}

int main() {
	fin >> n;
	citire();

	calculArie();

	//arie = (double) ((int)(arie * 100000)) / 100000;

	fout << setprecision(6) << fixed;

	if (arie > 0) fout << arie/2;
	else fout << -arie/2;

	return 0;
}