Pagini recente » Cod sursa (job #3291686) | Cod sursa (job #1203177) | Cod sursa (job #957903) | Cod sursa (job #524723) | Cod sursa (job #1402723)
#include <cstdio>
#define NMAX 100005
struct punct
{
double x, y;
};
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;
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()
{
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("%lf", arie);
}
int main()
{
freopen("aria.in", "r", stdin);
freopen("aria.out", "w", stdout);
citire();
rezolvare();
return 0;
}