Pagini recente » Cod sursa (job #1225573) | Cod sursa (job #1258888) | Cod sursa (job #1936354) | Cod sursa (job #2362845) | Cod sursa (job #943099)
Cod sursa(job #943099)
#include <cstdio>
#include <algorithm>
#include <cmath>
using namespace std;
struct punct{int x,y;};
double Lsegment(punct A, punct B)
{
return sqrt(1.*abs(A.x-B.x)*abs(A.x-B.x)+abs(A.y-B.y)*abs(A.y-B.y));
}
double Trarie(punct A, punct B, punct C)
{
double a,b,c,p;
a=Lsegment(B,C);
b=Lsegment(A,C);
c=Lsegment(A,B);
p=(a+b+c)/2;
return sqrt(p*(p-a)*(p-b)*(p-c));
}
punct poly[100010];
int n;
double arie;
int main()
{
freopen("aria.in","r",stdin);
freopen("aria.out","w",stdout);
scanf("%d",&n);
int i;
for(i=0;i<n;i++)
scanf("%d%d",&poly[i].x,&poly[i].y);
for(i=0;i+2<n;i++)
arie+=Trarie(poly[i],poly[i+1],poly[i+2]);
printf("%g\n",arie);
return 0;
}