Pagini recente » Cod sursa (job #1767789) | Cod sursa (job #91658) | Cod sursa (job #607451) | Cod sursa (job #3122886) | Cod sursa (job #2366391)
#include <cstdio>
#define N 100005
#include <fstream>
#include <iomanip>
using namespace std;
struct bla
{
long double x,y;
}p[N];
long double det(bla a, bla b)
{
long double x1=a.x, x2=b.x, y1=a.y, y2=b.y;
return (x1*y2-x2*y1);
}
int main()
{
ifstream f("aria.in");
ofstream g("aria.out");
int n;
f>>n;
for(int i=1;i<=n;++i)
f>>p[i].x>>p[i].y;
///ATENTIE, punctele sunt datae in ordine trigonometrica
p[n+1]={p[1].x,p[1].y};
double arie=0;
///nu folosim modul pt ca ariile negative vor "anula" zonele
///corespunzătoare ariilor pozitive care se află în afara poligonului
for(int i=1;i<=n;++i)
arie+=det(p[i],p[i+1]);
g<<fixed<<setprecision(5)<<arie/2;
return 0;
}