Cod sursa(job #1839941)

Utilizator stefan_bogdanstefan bogdan stefan_bogdan Data 3 ianuarie 2017 17:00:28
Problema Aria Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <iostream>
#include <stdio.h>
#include <math.h>

#define MAXN 100000+10

using namespace std;

FILE *f, *g;

struct point
{
	double x, y;
};

int n;
point v[MAXN];

inline void read()
{
	fscanf(f, "%d", &n);
	for (int i = 1; i <= n; i++)
	{
		fscanf(f, "%lf %lf", &v[i].x, &v[i].y);
	}
	v[++n] = v[1];
}

double dist(point a, point b)
{
	double x = a.y - b.y;
	double y = b.x - a.x;

	return sqrt(x*x+y*y);
}

double perimeter()
{
	double sol = 0;
	for (int i = 1; i < n; i++)
	{
		sol += (v[i].x * v[i + 1].y - v[i + 1].x * v[i].y);
		//sol += dist(v[i], v[i + 1]);
	}
	return sol;
}

void write()
{
	double sol = perimeter() / 2.0;
	fprintf(g, "%lf", sol);
}

int main()
{
	f = fopen("aria.in", "r");
	g = fopen("aria.out", "w");

	read();
	write();

	fclose(f);
	fclose(g);
}