Pagini recente » Cod sursa (job #1099716) | Cod sursa (job #2328338) | Cod sursa (job #2349426) | Cod sursa (job #766578) | Cod sursa (job #2360537)
#include <cstdio>
#include <algorithm>
#include <cmath>
using namespace std;
FILE *f,*g;
double X,Y;
struct bla
{
double x,y;
}v[100002];
bool how(bla A, bla B)
{
if(A.x!=B.x)
return (A.x<B.x);
return (A.y<B.y);
}
int det(bla A, bla B)
{
int x1=A.x,x2=B.x,y1=A.y,y2=B.y;
return (x1*y2+x2*Y+X*y1-y2*X-Y*x1-y1*x2);
}
int main()
{
f=fopen("aria.in","r");
g=fopen("aria.out","w");
int n;
double arie=0;
fscanf(f,"%d",&n);
for(int i=1;i<=n;++i)
fscanf(f,"%lf %lf",&v[i].x,&v[i].y),X+=v[i].x,Y+=v[i].y;
X=X/n;
Y=Y/n;
sort(v+1,v+n+1,how);
for(int i=2;i<=n;++i)
arie=arie+abs(det(v[i-1],v[i]))/2.;
fprintf(g,"%0.5lf",arie);
fclose(f);
fclose(g);
return 0;
}