Pagini recente » Cod sursa (job #553361) | Cod sursa (job #2216088) | Cod sursa (job #2589705) | Cod sursa (job #2502979) | Cod sursa (job #2983892)
#include <algorithm>
#include <cstdio>
#include <utility>
#include <vector>
using namespace std;
double compute_area_with_0(pair<int, int> p1, pair<int, int> p2) {
return p1.first * p2.second - p2.first * p1.second;
}
double compute_area(pair<int, int> p1, pair<int, int> p2, pair<int, int> p3) {
return 0.5 * abs(p1.first * p2.second + p2.first * p3.second +
p3.first * p1.second - p1.first * p3.second -
p2.first * p1.second - p3.first * p2.second);
}
int main() {
freopen("aria.in", "r", stdin);
freopen("aria.out", "w", stdout);
int n;
int area = 0;
vector<pair<int, int>> points;
scanf("%d", &n);
points.resize(n + 1);
for (int i = 0; i < n; i++) {
scanf("%d %d", &points[i].first, &points[i].second);
}
points[n] = points[0];
for (int i = 0; i < n; i++) {
area += compute_area_with_0(points[i], points[i + 1]);
}
printf("%.5lf", (double)abs(area) / 2);
return 0;
}