Pagini recente » Cod sursa (job #2783017) | Borderou de evaluare (job #2051294) | Cod sursa (job #352709) | Cod sursa (job #441447) | Cod sursa (job #1452692)
#include <iostream>
#include <fstream>
#include <list>
#include <assert.h>
const char IN[] = "aria.in", OUT[] = "aria.out";
const int NMAX = 100001;
struct point {
double x, y;
};
using namespace std;
point P[NMAX];
int N;
inline void read_data() {
freopen(IN, "r", stdin);
assert(scanf("%d", &N));
for (int i = 0; i < N; ++i) {
assert(scanf("%lf %lf", &P[i].x, &P[i].y));
}
fclose(stdin);
}
double area() {
double S = 0;
P[N] = P[0];
for (int i = 0; i < N; ++i)
S += (P[i].x * P[i + 1].y - P[i + 1].x*P[i].y);
if (S < 0) S = -S;
return S/2.0f;
}
int main() {
read_data();
fprintf(fopen(OUT, "w"), "%.6f", area());
return 0;
}