Pagini recente » Cod sursa (job #2725253) | Cod sursa (job #2075996) | Cod sursa (job #1970211) | Cod sursa (job #3181577) | Cod sursa (job #2530395)
#include <iostream>
#include <cstdio>
#define NMAX 100000
using namespace std;
struct point {
long double x, y;
} v[NMAX + 5];
int n;
point old, crt;
long double area = 0;
long double det(point a, point b) {
return a.x * b.y - a.y * b.x;
}
int main() {
freopen("aria.in", "r", stdin);
freopen("aria.out", "w", stdout);
double d1, d2;
scanf("%d", &n);
for(int i = 1; i <= n; i++) {
scanf("%lf %lf", &d1, &d2);
v[i].x = (long double)d1;
v[i].y = (long double)d2;
}
old.x = v[1].x;
old.y = v[1].y;
for(int i = 2; i <= n; i++) {
crt.x = v[i].x;
crt.y = v[i].y;
area += det(old, crt);
old = crt;
}
crt.x = v[1].x;
crt.y = v[1].y;
area += det(old, crt);
if(area < 0)
printf("%lf", -area / 2);
else
printf("%lf", area / 2);
return 0;
}