Pagini recente » Clasament arhiva | Cod sursa (job #1116600)
#include <iostream>
#include <fstream>
#include <iomanip>
#include <cmath>
using namespace std;
const int Nmax = 100002;
struct Point
{
long double x, y;
Point(){}
Point( long double _x, long double _y ) : x( _x ), y( _y ) {}
friend istream& operator >> ( istream &f, Point &P )
{
f >> P.x >> P.y;
return f;
}
};
Point v[Nmax];
int N;
int main()
{
ifstream f("aria.in");
ofstream g("aria.out");
f >> N;
for ( int i = 1; i <= N; ++i )
{
f >> v[i];
}
v[N + 1] = v[1];
long double A = 0;
for ( int i = 1; i <= N; ++i )
{
A += v[i].x * ( v[i + 1].y - v[i].y );
}
g << fixed << setprecision( 10 );
g << abs( A / 2.0 ) << "\n";
return 0;
}