Pagini recente » Rating Radu Antonio (Antonio1321) | Cod sursa (job #2944254) | Cod sursa (job #1088950) | Cod sursa (job #2699140) | Cod sursa (job #1788726)
#include <iostream>
#include <fstream>
#include <vector>
#include <iomanip>
using namespace std;
struct Point {
double x, y;
};
double det(Point a, Point b, Point c) {
return a.x*(b.y-c.y) + b.x*(c.y-a.y) + c.x*(a.y-b.y);
}
main() {
ifstream cin("aria.in");
ofstream cout("aria.out");
int n;
cin>>n;
vector<Point> a(n);
for (int i = 0; i < n; i++) {
cin>>a[i].x>>a[i].y;
}
double s = 0;
Point z = Point{0,0};
for (int i = 1; i < a.size(); i++) {
s+=det(z, a[i-1], a[i]);
}
s+=det(z, a.back(), a[0]);
if (s < 0) {
s = -s;
}
cout<<fixed;
cout<<setprecision(9)<<s/2;
}