Pagini recente » Borderou de evaluare (job #2165500) | Borderou de evaluare (job #3100257) | Borderou de evaluare (job #1618667) | Borderou de evaluare (job #3321460) | Cod sursa (job #3313331)
#include <bits/stdc++.h>
using namespace std;
class Point
{
public:
long double x, y;
};
long double determinant(Point A, Point B, Point C)
{
return A.x * B.y + B.x * C.y + C.x * A.y - A.x * C.y - C.x * B.y - B.x * A.y;
}
int main()
{
freopen("aria.in", "r", stdin);
freopen("aria.out", "w", stdout);
int n;
cin >> n;
vector<Point> polygon(n);
for(int i = 0; i < n; i++)
{
cin >> polygon[i].x >> polygon[i].y;
}
long double area = 0;
for(int i = 0; i < n - 1; i++)
{
long double det = determinant({0, 0}, polygon[i], polygon[i + 1]);
//cout << det << "\n";
area += det;
}
area += determinant({0, 0}, polygon[n - 1], polygon[0]);
cout << setprecision(5) << fixed << area / 2.0 << "\n";
}