Pagini recente » Cod sursa (job #825311) | Cod sursa (job #3268925) | Cod sursa (job #2535293) | Cod sursa (job #1162709) | Cod sursa (job #2368501)
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
FILE *f,*g;
struct bla
{
double x,y;
}v[100002],G;
double det(bla A, bla B,bla C)
{
double x1=A.x,x2=B.x,x3=C.x,y1=A.y,y2=B.y,y3=C.y;
return (x1*y2+x2*y3+x3*y1-x3*y2-y3*x1-x2*y1);
}
bool how(bla I,bla J)
{
return (atan2(I.x-G.x,I.y-G.y)>atan2(J.x-G.x,J.y-G.y));
}
int main()
{
f=fopen("aria.in","r");
g=fopen("aria.out","w");
int n;
fscanf(f,"%d",&n);
for(int i=1;i<=n;++i)
fscanf(f,"%lf %lf",&v[i].x,&v[i].y),G.x+=v[i].x,G.y+=v[i].y;
G.x/=n;
G.y/=n;
sort(v+1,v+n+1,how);
double arie=0;
for(int i=2;i<n;++i)
arie+=det(v[1],v[i],v[i+1]);
arie=arie*0.5;
fprintf(g,"%0.5lf",arie);
fclose(f);
fclose(g);
return 0;
}