Pagini recente » Profil Suyggyu | Cod sursa (job #1111712) | Istoria paginii runda/ne-auzim/clasament | Cod sursa (job #2073480) | Cod sursa (job #2021113)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("aria.in");
ofstream fout("aria.out");
const int N = 1e5 + 10;
struct point
{
double x, y;
};
point x[N];
long double aria;
int orientation(point a, point b)
{
double val = a.y * (b.x - a.x) - (b.y - a.y) * a.x;
if(val > 0)
return -1;
if(val < 0)
return 1;
return 0;
}
int main()
{
int n;
fin >> n;
for(int i = 0; i < n; ++i)
fin >> x[i].x >> x[i].y;
x[n] = x[0];
for(int i = 0; i < n; ++i)
aria += orientation(x[i], x[i+1]) * (x[i].x * x[i+1].y - x[i+1].x * x[i].y)/2;
fout << aria;
return 0;
}