Pagini recente » Cod sursa (job #2419827) | Cod sursa (job #2339443) | Cod sursa (job #520109) | Cod sursa (job #2120274) | Cod sursa (job #1402729)
#include <cstdio>
#define NMAX 100005
struct punct
{
long double x, y;
};
long double determinant(punct A, punct B, punct C)
{
return A.x * B.y + B.x * C.y + A.y * C.x - B.y * C.x - A.y * B.x - A.x * C.y;
}
int N;
long double arie;
punct A[NMAX], o;
void citire()
{
scanf("%d", &N);
for (int i = 1; i <= N; ++i)
scanf("%lf %lf", &A[i].x, &A[i].y);
A[N + 1] = A[1];
o.x = o.y = 0;
}
void rezolvare()
{
long double det;
for (int i = 1; i <= N; ++i)
{
det = determinant(A[i], A[i + 1], o);
arie += det / 2;
}
if (arie < 0)
arie = -arie;
printf("%.5lf", arie);
}
int main()
{
freopen("aria.in", "r", stdin);
freopen("aria.out", "w", stdout);
citire();
rezolvare();
return 0;
}