Pagini recente » Cod sursa (job #2608407) | Cod sursa (job #891001) | Cod sursa (job #309384) | Cod sursa (job #3164458) | Cod sursa (job #1412806)
#include <bits/stdc++.h>
using namespace std;
#define Point pair<double,double>
#define x first
#define y second
/// assumes that polygon is given in clockwise/counter-clockwise order
double signedArea(vector<Point>& points)
{
double area = 0;
int N = points.size();
for (int i = 0; i < N; ++i)
area += (points[i].x * points[(i + 1) % N].y - points[(i + 1) % N].x * points[i].y);
return area / 2.0;
}
int main()
{
ifstream in("aria.in");
ofstream out("aria.out");
int N;
in >> N;
vector<Point> points(N);
for ( int i = 0; i < N; ++i )
in >> points[i].x >> points[i].y;
out << fixed << setprecision(10);
out << abs(signedArea(points));
return 0;
}