Pagini recente » Cod sursa (job #1509813) | Cod sursa (job #774155) | Cod sursa (job #810566) | Cod sursa (job #2334021) | Cod sursa (job #1685761)
#include <cstdio>
#include <cstdlib>
#include <cassert>
#include <vector>
#include <cstring>
#include <cctype>
#include <cmath>
#include <algorithm>
using namespace std;
#ifdef INFOARENA
#define ProblemName "aria"
#endif
#define MCONCAT(A, B) A B
#ifdef ProblemName
#define InFile MCONCAT(ProblemName, ".in")
#define OuFile MCONCAT(ProblemName, ".out")
#else
#define InFile "fis.in"
#define OuFile "fis.out"
#endif
typedef long double LD;
typedef pair<LD, LD> Point;
inline LD cross(Point &A, Point &B) {
return (A.first * B.second - A.second * B.first);
}
int main() {
assert(freopen(InFile, "r", stdin));
assert(freopen(OuFile, "w", stdout));
int N;
scanf("%d", &N);
Point FP;
scanf("%Lf%Lf", &FP.first, &FP.second);
Point prev = FP, cur;
LD ans = 0;
for (int i = 1; i < N; i++) {
scanf("%Lf%Lf", &cur.first, &cur.second);
ans += cross(prev, cur);
prev = cur;
}
ans += cross(cur, FP);
ans /= 2.0;
printf("%Lf\n", fabs(ans));
return 0;
}