Cod sursa(job #1545209)

Utilizator ionutmodoModoranu Ionut-Vlad ionutmodo Data 6 decembrie 2015 15:57:38
Problema Aria Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.99 kb
/*
	http://www.infoarena.ro/problema/aria
*/

#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;

struct point { int x, y; };

point puncte[100001];
int N;
double solutia;

void read()
{
	ifstream fin("aria.in");
	fin >> N;
	for (int i = 0; i < N; ++i)
	{
		fin >> puncte[i].x >> puncte[i].y;
	}
	puncte[N] = puncte[0];
	fin.close();
}

double modul(double x)
{
	return (x < 0) ? -x : x;
}

double aria(point A, point B, point C)
{
	int first = A.x * B.y + B.x + C.y + C.x * A.y;
	int second = C.x * B.y + A.x * C.y + B.x * A.y;
	double result = (first - second) * 0.5;
	return modul(result);
}


void solve()
{
	for (int i = 0; i <= N; ++i)
	{
		point A = puncte[i];
		point B = puncte[i + 1];
		solutia += (A.x * B.y - B.x * A.y);
	}
	solutia *= 0.5;
}

void write()
{
	ofstream fout("aria.out");
	fout << setprecision(5) << solutia << "\n";
	fout.close();
}

int main()
{
	read();
	solve();
	write();
	return 0;
}