Pagini recente » Cod sursa (job #1276036) | Cod sursa (job #1276419) | Cod sursa (job #2889636) | Cod sursa (job #2069838) | Cod sursa (job #1685741)
#include <cstdio>
#include <cstdlib>
#include <cassert>
#include <vector>
#include <cstring>
#include <cctype>
#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 pair<double, double> Point;
inline double cross(Point &A, Point &B) {
return (A.first * B.second - A.second * B.first) / 2;
}
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;
double 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);
printf("%.6lf\n", ((ans < 0) ? -ans : ans));
return 0;
}